Держите QMainWindow свернутым, когда QDialogs show ()

У меня есть заявление с 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с показаны?

0

Решение

QWidget имеет слот showMinimized(), Вы должны создать QDialog без родителя как QMainWindow, В вашем QDialog установить атрибут (например,

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

), то вы можете установить showMinimized() за QMainWindow во время, когда ваш QDialog было начало.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]