拦截QT关闭窗口的CloseEvent()解析

QDialog类下有一个虚函数

void QDialog::closeEvent (  QCloseEvent   *  e   )  [virtual protected]

void closeEvent(QCloseEvent *event){exit(0)}

通过实现closeEvent函数,就可以以对关闭窗口消息进行拦截,比如程序还没有完成工作时,可以弹出警告窗口,即使用户确认退出操作.

在头文件中,需要加入#include <QCloseEvent>:

#ifndef TEST_H
#define TEST_H

#include <QDialog>
#include <QCloseEvent>

class ClientTest : public QDialog
{
    Q_OBJECT

public:
    ClientTest();
    void closeEvent(QCloseEvent *event);
 //后边的具体实现省略
...

};
#endif

---------------------------------------------------------------

在cpp文件中,对closeEvent函数进行实现:

void ClientTest::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();  //接受退出信号,程序退出
    }
}

拦截QT关闭窗口的CloseEvent()解析相关推荐

  1. 拦截QT关闭窗口的CloseEvent

    写程序遇到了QTimer启动以后可以在普通函数(例如槽函数)里面停止,但是无法在析构函数里停止的问题.想方设法皆无果,最后之得从关闭窗口上下功夫,关闭窗口时判断如果timer还是启动状态(即后台进程还 ...

  2. 【Qt开发】QT对话框去掉帮助和关闭按钮 拦截QT关闭窗口的CloseEvent

    建了一个对话框,我不想把边框去掉,只想去掉关闭按钮, setWindowFlags(windowFlags()&~Qt::WindowCloseButtonHint&~Qt::Wind ...

  3. qt 关闭窗口的槽函数_勇哥的VC++应用框架学习之QT(1) 信号槽、按钮控件、opencv读取显示图片...

    前言勇哥对于C语言,C++早些年有一些接触,这个系列贴子就记载一下C++应用框架的学习经验. 在写程序时,UI.基础类库.应用程序框架对于vc来讲,只能依靠MFC和QT了. 勇哥对MFC有很强的抵触, ...

  4. qt 关闭窗口的槽函数_QT-信号槽(点击按钮关闭窗口)

    # QT-信号槽(点击按钮关闭窗口) ​ 其实也就是mfc下的响应是一个意思 信号发送者 发送信号 信号接收者 处理信号 就是这样一个流程 那么信号发送者可以是很多的情况这里举例分析一个情况: 点击按 ...

  5. QT5主界面“关闭窗口”按钮设置弹出提示询问信息

    QT5主界面为"关闭窗体"按钮和其action添加关闭窗口事件,可以询问是否退出 1.在信号与槽函数中,actQuit关联信号与槽函数,如下: 2.在mainwindow.h文件M ...

  6. Qt5.9关闭子窗口时执行特定代码(析构函数、关闭窗口)(setAttribute(Qt::WA_DeleteOnClose)、closeEvent(QCloseEvent* event))

    本文主要总结在关闭qt的QWidget子窗口瞬间,执行特定代码.由于主窗口关闭时,会自动执行析构函数,而子窗口关闭时,却不会调用析构函数,进过博主查阅资料,发现有两种方法可以在子窗口关闭时,调用析构函 ...

  7. Qt捕捉窗口关闭事件

    Qt捕捉窗口关闭事件 有时候我们希望在关闭窗口之前做一些操作,例如保存缓存数据或向用户提示是否关闭窗口等等. 由于一般的窗口都是继承自QWidget, 那么我们可以通过覆盖QWidget中的虚函数cl ...

  8. 使用Qt编辑关闭窗口程序的一些见解

    http://sunshine1106.blog.51cto.com/1371108/305106/  近日在测试软件功能时,发现一些不是太显眼问题,如希望在点击窗口右上角的X按钮关闭窗口时,能够提示 ...

  9. Qt关于窗口关闭触发函数/信号

    方法一. 窗口右上角的X按键会导致其在不给出任何提示的情况下直接退出, 当点击右上角的x按键时,会触发Qt中的一个事件处理函数:void QWidget::closeEvent ( QCloseEve ...

最新文章

  1. webpack打开项目命令_配置webpack中dev.env.js、prod.env.js,解决不同命令下项目启动和打包到指定的环境...
  2. 配置 Spring.NET
  3. 2020 年的第 1 个重磅彩蛋!
  4. 【漫画解读银行业务】
  5. if you can not get the full version within 1 minute
  6. AcWing 164. 可达性统计
  7. java注释日志打印_java 注解结合 spring aop 实现自动输出日志
  8. 【题解】大床Nim (2019,5.23)
  9. labimage 怎样旋转图片_大理石旋转楼梯的测量方法,你学会了吗?
  10. 【今日CS 视觉论文速览】Thu, 13 Dec 2018
  11. BI的价值体现在哪里
  12. TCPIP详解 卷一核心概念整理
  13. html 复制文本 点击复制按钮
  14. IDA Pro与x64dbg联动调试记录
  15. Binary Search Tree(二叉搜索树、二叉查找树、二叉排序树)
  16. 判断单链表是否有环以及环的连接点
  17. linux ip命令
  18. itchat和php,Python使用itchat 功能分析微信好友性别和位置
  19. python3-百度,360广告推广(url收集)
  20. 在一种特殊情况下损坏了wav音频文件,修复的方法

热门文章

  1. 计算机毕业设计JAVA电影推荐网站mybatis+源码+调试部署+系统+数据库+lw
  2. Android 邮箱自动补全-MultiAutoCompleteTextView实现
  3. stimulsoft oracle,报表仪表设计器Stimulsoft的处理数据功能
  4. 一个奇鸽船新体验:类似的木函软件
  5. 健身房健身需要什么装备,五款健身房必备运动耳机分享
  6. 爬虫基础:HTTP基本原理
  7. linux activemq 打印日志,Log4j.xml配置日志按级别过滤并将指定级别的日志发送到ActiveMQ...
  8. 安卓系统双屏异显_Android10模拟器上调试双屏异显
  9. linux下bcd文件还原,BCDEDIT命令详解 | 数据恢复实验室 Data Recovery Laboratory
  10. 视频直播app和网页版怎么开发?