如何在任务栏中打开QDialog窗口而不是CloseWindow

时间:2017-07-26 02:16:58

标签: qt qt5

当我在CloseWindow中单击右键时,如何在任务栏中打开QDialog窗口而不是QuitProgram?

检查图像

Obs:我已经有了一个带有按钮退出程序的QDialog UI。

1 个答案:

答案 0 :(得分:1)

覆盖主窗口中的QWidget::closeEvent()功能。当用户尝试退出应用程序时,将调用此方法。例如:

void YourMainWindow::closeEvent(QCloseEvent* ev)
{
    QMessageBox msgBox(QMessageBox::Question,
                       tr("Quit"), tr("Are you sure you want to quit?"),
                       QMessageBox::Yes | QMessageBox::Cancel);
    msgBox.setDefaultButton(QMessageBox::Cancel);
#ifdef Q_OS_MAC
    // This presents the dialog as a sheet in Mac OS.
    msgBox.setWindowModality(Qt::WindowModal);
#endif
    if (msgBox.exec() == QMessageBox::Yes) {
        ev->accept();
    } else {
        ev->ignore();
    }
}