QDialogs show()时保持QMainWindow最小化

时间:2012-11-29 17:06:54

标签: c++ qt qmainwindow

我有一个带有QMainWindow的应用程序作为处于最小化状态的UI,一段时间后应用程序通过调用messageDlg->show()抛出一条消息(messageDlgQDialog宾语)。像这样的东西

void MainWindow::WarningDialog() 
{
    m_messageDialog = new QDialog(this);
    m_messageDialog ->show();
}

这导致我的QMainWindow处于正常模式,我不想发生这种情况,即即使调用了任何QDialog.show(),我也试图将应用程序保持在最小化窗口中。

我不希望每次调用QDialog->show()时都检查应用程序是否处于最小化模式。

我已跟踪发布到QMainWindow::event()的所有事件,但我在恢复窗口之前看到的唯一事件是QEvent::WindowStateChange,即窗口状态已从最小化模式更改。

即使展示了QMainWindow,是否有办法让QDialog最小化?

1 个答案:

答案 0 :(得分:1)

QWidgetshowMinimized()个广告位。您应该创建QDialog,而不将父项QMainWindow创建。在您的QDialog设置属性中(例如

 QDialog *dialog = new QDialog;
 dialog->setAttribute(Qt::WA_DeleteOnClose);

),然后您可以在showMinimized()开始时及时为QMainWindow设置QDialog