关于qt窗口的自定义关闭closeEvent

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:07   3077   0

在qt的qtwidget中有一个虚函数virtual void closeEvent(QCloseEvent *event)它的作用就是响应关闭事件,当我们需要处理自己的关闭操作时,就可以重载该函数。

在头文件加入:

#include <QCloseEvent>

类的定义中加入:

protected:
    void closeEvent(QCloseEvent *event);

在源文件实现该函数:

void MainWindow::closeEvent(QCloseEvent *event)
{
 
    int ret = QMessageBox::question(this,"记事本",
                                    "是否要保存下当前内容?",
                                    QMessageBox::Yes | QMessageBox::No
                                    | QMessageBox::Cancel,
                                    QMessageBox::Yes);
    switch (ret)
    {
    case QMessageBox::Yes:
        slotSaveFile();
        break;
    case QMessageBox::Cancel:
        event->ignore();//忽略退出事件,程序继续运行
        break;
    default:
        break;
    }
    //event->accept();  //默认是接受退出事件,程序退出,所以这句可以忽略
}
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP