在QT中关闭程序之前,请显示对话框

show a dialog before closing the program in Qt

本文关键字:显示 对话框 QT 关闭程序      更新时间:2023-10-16

我想在关闭qt中的程序之前显示对话框,例如Windows Paint或Notepad,在关闭之前,Aware Dialog出现了警告用户?顺便说一句,我使用QT

如果您的应用程序使用 QMainWindow ,请超载closeEvent()显示对话框,并且仅在用户单击 OK时呼叫QMainWindow::closeEvent在您的对话框中。

如果您的应用程序使用 Qdialog ,请在您的对话框中单击 OK OK ,仅拨打accept()插槽,并且仅调用QDialog::accept。p>

您可以使用此处描述的解决方案:https://web.archive.org/web/20170716164107/http://www.codeprogress.com/c.com/c.com/cppp/cppp/cppp/libraries/qt/qtcloseevent/.php

您可以通过以下方式简单地覆盖CloseEvent函数。

#include <QCloseEvent>
#include <QMessageBox>
void MainWindow::closeEvent(QCloseEvent *event)  // show prompt when user wants to close app
{
    event->ignore();
    if (QMessageBox::Yes == QMessageBox::question(this, "Close Confirmation", "Exit?", QMessageBox::Yes | QMessageBox::No))
    {
        event->accept();
    }
}