拦截QT关闭窗口的CloseEvent()解析
拦截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()解析相关推荐
- 拦截QT关闭窗口的CloseEvent
写程序遇到了QTimer启动以后可以在普通函数(例如槽函数)里面停止,但是无法在析构函数里停止的问题.想方设法皆无果,最后之得从关闭窗口上下功夫,关闭窗口时判断如果timer还是启动状态(即后台进程还 ...
- 【Qt开发】QT对话框去掉帮助和关闭按钮 拦截QT关闭窗口的CloseEvent
建了一个对话框,我不想把边框去掉,只想去掉关闭按钮, setWindowFlags(windowFlags()&~Qt::WindowCloseButtonHint&~Qt::Wind ...
- qt 关闭窗口的槽函数_勇哥的VC++应用框架学习之QT(1) 信号槽、按钮控件、opencv读取显示图片...
前言勇哥对于C语言,C++早些年有一些接触,这个系列贴子就记载一下C++应用框架的学习经验. 在写程序时,UI.基础类库.应用程序框架对于vc来讲,只能依靠MFC和QT了. 勇哥对MFC有很强的抵触, ...
- qt 关闭窗口的槽函数_QT-信号槽(点击按钮关闭窗口)
# QT-信号槽(点击按钮关闭窗口) 其实也就是mfc下的响应是一个意思 信号发送者 发送信号 信号接收者 处理信号 就是这样一个流程 那么信号发送者可以是很多的情况这里举例分析一个情况: 点击按 ...
- QT5主界面“关闭窗口”按钮设置弹出提示询问信息
QT5主界面为"关闭窗体"按钮和其action添加关闭窗口事件,可以询问是否退出 1.在信号与槽函数中,actQuit关联信号与槽函数,如下: 2.在mainwindow.h文件M ...
- Qt5.9关闭子窗口时执行特定代码(析构函数、关闭窗口)(setAttribute(Qt::WA_DeleteOnClose)、closeEvent(QCloseEvent* event))
本文主要总结在关闭qt的QWidget子窗口瞬间,执行特定代码.由于主窗口关闭时,会自动执行析构函数,而子窗口关闭时,却不会调用析构函数,进过博主查阅资料,发现有两种方法可以在子窗口关闭时,调用析构函 ...
- Qt捕捉窗口关闭事件
Qt捕捉窗口关闭事件 有时候我们希望在关闭窗口之前做一些操作,例如保存缓存数据或向用户提示是否关闭窗口等等. 由于一般的窗口都是继承自QWidget, 那么我们可以通过覆盖QWidget中的虚函数cl ...
- 使用Qt编辑关闭窗口程序的一些见解
http://sunshine1106.blog.51cto.com/1371108/305106/ 近日在测试软件功能时,发现一些不是太显眼问题,如希望在点击窗口右上角的X按钮关闭窗口时,能够提示 ...
- Qt关于窗口关闭触发函数/信号
方法一. 窗口右上角的X按键会导致其在不给出任何提示的情况下直接退出, 当点击右上角的x按键时,会触发Qt中的一个事件处理函数:void QWidget::closeEvent ( QCloseEve ...
最新文章
- webpack打开项目命令_配置webpack中dev.env.js、prod.env.js,解决不同命令下项目启动和打包到指定的环境...
- 配置 Spring.NET
- 2020 年的第 1 个重磅彩蛋!
- 【漫画解读银行业务】
- if you can not get the full version within 1 minute
- AcWing 164. 可达性统计
- java注释日志打印_java 注解结合 spring aop 实现自动输出日志
- 【题解】大床Nim (2019,5.23)
- labimage 怎样旋转图片_大理石旋转楼梯的测量方法,你学会了吗?
- 【今日CS 视觉论文速览】Thu, 13 Dec 2018
- BI的价值体现在哪里
- TCPIP详解 卷一核心概念整理
- html 复制文本 点击复制按钮
- IDA Pro与x64dbg联动调试记录
- Binary Search Tree(二叉搜索树、二叉查找树、二叉排序树)
- 判断单链表是否有环以及环的连接点
- linux ip命令
- itchat和php,Python使用itchat 功能分析微信好友性别和位置
- python3-百度,360广告推广(url收集)
- 在一种特殊情况下损坏了wav音频文件,修复的方法
热门文章
- 计算机毕业设计JAVA电影推荐网站mybatis+源码+调试部署+系统+数据库+lw
- Android 邮箱自动补全-MultiAutoCompleteTextView实现
- stimulsoft oracle,报表仪表设计器Stimulsoft的处理数据功能
- 一个奇鸽船新体验:类似的木函软件
- 健身房健身需要什么装备,五款健身房必备运动耳机分享
- 爬虫基础:HTTP基本原理
- linux activemq 打印日志,Log4j.xml配置日志按级别过滤并将指定级别的日志发送到ActiveMQ...
- 安卓系统双屏异显_Android10模拟器上调试双屏异显
- linux下bcd文件还原,BCDEDIT命令详解 | 数据恢复实验室 Data Recovery Laboratory
- 视频直播app和网页版怎么开发?