0

QMainWindowしばらくすると、アプリケーションがmessageDlg->show()( messageDlgis a QDialogobject )を呼び出してメッセージをスローした後、最小化された状態の UI を持つアプリケーションがあります。このようなもの

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

これにより、QMainWindow発生したくない通常モードになります。つまり、アプリケーションQDialog.show()が呼び出された場合でも、アプリケーションを最小化されたウィンドウに保持しようとしています。

QDialog->show()aが呼び出されるたびに、アプリケーションが最小化モードであるかどうかをチェックし続けたくありません。

に投稿されたすべてのイベントを追跡しましたQMainWindow::event()が、ウィンドウを復元する前に発生した唯一のイベントはQEvent::WindowStateChange、ウィンドウの状態が最小化モードから既に変更されていることです。

QMainWindows が表示されていても最小化を維持する方法はありQDialogますか?

4

1 に答える 1

1

QWidgetスロットありshowMinimized()QDialog親なしで作成する必要がありますQMainWindow。あなたのQDialogセット属性で(例えば

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

showMinimized())、その後、開始しQMainWindowた時間に設定できますQDialog

于 2012-11-29T18:12:22.123 に答える