У меня есть две QMainWindows. Я хотел бы, чтобы QMessageBox отображался в QMainWindow с exec(), другой QMainWindow не блокировался.QMainWindow independent
Два QMainWindow должны быть независимыми.
Как это сделать?
У меня есть две QMainWindows. Я хотел бы, чтобы QMessageBox отображался в QMainWindow с exec(), другой QMainWindow не блокировался.QMainWindow independent
Два QMainWindow должны быть независимыми.
Как это сделать?
Это не имеет никакого отношения к 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.
Используйте способ show()
для отображения каждого QMainWindow
вместо exec()
.
QMainWindows отображаются с показом. И мне нужно использовать exec для QMessageBox для обработки результата. – artoon
Что это нужно делать с 'QThread'? – RobbieE
На данный момент ничего. Но я думаю, что QmainWindows должен быть независимым, как если бы они были QThreads. – artoon