我有两个QMainWindows。我想在QMainWindow上显示一个带有exec()的QMessageBox时,其他QMainWindow不会被阻止。
两个QMainWindow必须是独立的。
这是怎么做到的?
答案 0 :(得分:2)
它与QThread无关,Qt文档声明在QT应用程序中只能有 ONE GUI 线程。
你应该做的是设置模态标志以使对话框模态,因此它将与其父窗口模态相关。在执行对话框之前,请致电:
pDialog->setWindowModality( Qt::WindowModal );
不要忘记为对话框对象设置正确的父。
Qt文档说明: -
Modal Dialogs
A modal dialog is a dialog that blocks input to other visible windows in the
same application. Dialogs that are used to request a file name from the user or
that are used to set application preferences are usually modal. Dialogs can be
application modal (the default) or window modal.
答案 1 :(得分:0)
使用show()
方法显示每个QMainWindow
而不是exec()
。