【发布时间】:2012-11-29 17:06:53
【问题描述】:
我有一个应用程序以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 最小化,即使显示了任何QDialogs?
【问题讨论】:
-
当
QDialog正在运行时,将QMainWindow设置为minimized强制。看来,您的QDialog是模态的。 -
不,它不是模态的。嗯,我认为 QWidget 没有最小化的“力”
标签: c++ qt qmainwindow