我有一个带有QMainWindow
的应用程序作为处于最小化状态的UI,一段时间后应用程序通过调用messageDlg->show()
抛出一条消息(messageDlg
是QDialog
宾语)。像这样的东西
void MainWindow::WarningDialog()
{
m_messageDialog = new QDialog(this);
m_messageDialog ->show();
}
这导致我的QMainWindow
处于正常模式,我不想发生这种情况,即即使调用了任何QDialog.show()
,我也试图将应用程序保持在最小化窗口中。
我不希望每次调用QDialog->show()
时都检查应用程序是否处于最小化模式。
我已跟踪发布到QMainWindow::event()
的所有事件,但我在恢复窗口之前看到的唯一事件是QEvent::WindowStateChange
,即窗口状态已从最小化模式更改。
即使展示了QMainWindow
,是否有办法让QDialog
最小化?
答案 0 :(得分:1)
QWidget
有showMinimized()
个广告位。您应该创建QDialog
,而不将父项QMainWindow
创建。在您的QDialog
设置属性中(例如
QDialog *dialog = new QDialog;
dialog->setAttribute(Qt::WA_DeleteOnClose);
),然后您可以在showMinimized()
开始时及时为QMainWindow
设置QDialog
。