Qt 窗口关闭提示:确认退出,点击关闭按钮不退出
要实现点击关闭界面时弹出提示窗口,选择'OK'退出,点击关闭按钮不退出,可以使用Qt的事件过滤器来实现。
首先,在窗口类的构造函数中安装事件过滤器:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->installEventFilter(this);
}
然后,在窗口类中重写事件过滤器的函数:
bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::Close) {
QMessageBox::StandardButton reply;
reply = QMessageBox::question(this, "提示", "确定要退出吗?", QMessageBox::Yes|QMessageBox::No);
if (reply == QMessageBox::Yes) {
// 点击'OK'退出
return QMainWindow::eventFilter(obj, event);
} else {
// 点击关闭按钮不退出
event->ignore();
return true;
}
}
return QMainWindow::eventFilter(obj, event);
}
这样,当点击关闭按钮时,会弹出提示窗口,选择'OK'会退出,点击关闭按钮会忽略关闭事件,从而不退出应用程序。
原文地址: https://www.cveoy.top/t/topic/fzHc 著作权归作者所有。请勿转载和采集!