我想在关闭程序之前在 Qt 中显示对话框,无论用户是要取消还是保存程序,即通过单击取消,用户有机会返回到未清理状态的程序,如 Windows 绘图或记事本,其中有意识关闭前的对话框出现警告用户?顺便说一句,我使用 Qt
问问题
7009 次
2 回答
16
如果您的应用程序使用QMainWindow,请重载closeEvent()
以显示对话框,并且仅QMainWindow::closeEvent
在用户在对话框中单击“确定”时才调用。
如果您的应用程序使用QDialog,请重载accept()
插槽,并且仅在用户在对话框中QDialog::accept
单击“确定”时才调用。
于 2012-10-29T20:53:17.123 回答
7
您可以使用此处描述的解决方案:https ://web.archive.org/web/20170716164107/http://www.codeprogress.com/cpp/libraries/qt/HandlingQCloseEvent.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();
}
}
于 2016-08-11T10:53:57.793 回答