У меня есть заявление с QMainWindow
как пользовательский интерфейс, который находится в свернутом состоянии, через некоторое время приложение выдает сообщение, вызывая 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
с показаны?
QWidget
имеет слот showMinimized()
, Вы должны создать QDialog
без родителя как QMainWindow
, В вашем QDialog
установить атрибут (например,
QDialog *dialog = new QDialog;
dialog->setAttribute(Qt::WA_DeleteOnClose);
), то вы можете установить showMinimized()
за QMainWindow
во время, когда ваш QDialog
было начало.
Других решений пока нет …