Qt学习 重写closeEvent退出对话框

前言

当我们点击Qt主界面上的X(退出)按键时,程序就直接退出。没有任何提示,这样对于一个软件是个缺陷,所以本文就是来解决这个问题。通过重写Qt的closeEvent函数,来实现退出程序时的提示对话框。

代码实现

在mainWindow.h中,添加如下代码
#include 
void closeEvent(QCloseEvent *event);    // 重写closeEvent的申明


在mainWindow.cpp中,添加如下代码
// 重写closeEvent: 确认退出对话框
void MainWindow::closeEvent(QCloseEvent *event)
{
    QMessageBox::StandardButton button;
    button=QMessageBox::question(this,tr("退出程序"),QString(tr("确认退出程序")),QMessageBox::Yes|QMessageBox::No);
    if(button==QMessageBox::No)
    {
        event->ignore(); // 忽略退出信号,程序继续进行
    }
    else if(button==QMessageBox::Yes)
    {
        event->accept(); // 接受退出信号,程序退出
    }
}

结果



备注

上述代码是使用QMessage的question函数来显示提示对话框的,同样可以使用information、warning等函数来显示提示对话框。

你可能感兴趣的:(Qt)