0

我有一个应用程序,QMainWindow其 UI 处于最小化状态,一段时间后应用程序通过调用messageDlg->show()messageDlg是一个QDialog对象)抛出一条消息。像这样的东西

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

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

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

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

QMainWindow即使QDialog显示任何 s ,是否有办法保持最小化?

4

1 回答 1

1

QWidget有槽showMinimized()。您应该QDialog在没有父级的情况下创建QMainWindow. 在您QDialog设置的属性中(例如

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

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

于 2012-11-29T18:12:22.123 回答