拦截QT关闭窗口的CloseEvent

QDialog类下有一个虚函数

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

 

通过实现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();  //接受退出信号,程序退出
    }
}

转载自:http://blog.csdn.net/vah101/article/details/6133728

转载于:https://www.cnblogs.com/zimmer/p/4360044.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431934.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql8.0本机登录要1秒_Mysql8.0的登录大坑……(忘记登录密码也可以这么搞)

关于安装和使用就不说了&#xff0c;属于基本操作了&#xff1b;我来重点记录一下关于使用前&#xff0c;使用navicat登录的时候报错&#xff0c;1130和2059查看安装后随机生成的密码&#xff1a; grep temporary password /var/log/mysqld.log原因&#xff1a;mysql8的密码验证…

Gmail邮箱添加域名解析

主机记录 MX 服务器地址 优先级 MX ASPMX.L.GOOGLE.COM. 10 MX ALT1.ASPMX.L.GOOGLE.COM. 20 MX ALT2.ASPMX.L.GOOGLE.COM. 20 MX ASPMX2.GOOGLEMAIL.COM. 30 MX ASPMX3.GOOGLEMAIL.COM. 30 MX ASPMX4.GOOGLEMAIL.COM. 30 MX ASPMX5.GOOGLEMAIL.COM. 3…

tidb vs mysql_一个长耗时SQL在TiDB和Mysql上的耗时测试

之前看到的TiDB和MySql的性能对比都是大量短耗时请求下的压测&#xff0c;单机情况下TiDB和MySql的确有些差距&#xff0c;不过笔者最近碰到的场景更多是sql要扫描的行数不小的情况下单sql比较耗时的问题&#xff0c;所以自己做了个简单测试这类型sql的耗时。TiDB单机环境部署g…

Oracle存储过程(转)

存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 行2: IS关键词表明后面将跟随一个PL/SQL体。 行3: BEGIN关键词表明…

win10 python 调用模块_python常识系列14--gt;python通过jpype模块调用jar包

前言能坚持一件事&#xff0c;本身就是一种很了不起的才华。一、jpype模块是什么&#xff1f;能够让 python 代码方便地调用 Java 代码的工具二、jpype模块安装安装和其它模块没区别&#xff0c;但是注意模块名 是 jpype1 &#xff0c;后面有个1pip install jpype1三、jpype模块…

js 定时器

Document自带的方法&#xff1a; 循环执行&#xff1a;var timeid window.setInterval&#xff08;“方法名或方法”&#xff0c;“延时”&#xff09;;window.clearInterval(timeid); 定时执行&#xff1a;var tmid window.setTimeout(“方法名或方法”, “延时”);window.c…

mysql 载入主体时出错_mysql遇到load data导入文件数据出现1290错误的解决方案

错误出现情景在cmd中使用mysql命令&#xff0c;学生信息表添加数据。使用load data方式简单批量导入数据。准备好文本数据&#xff1a; xueshengxinxi.txt 文件 数据之间以tab键进行分割执行 “load data infile 文本数据路径 into table tab_load_data” 弹出错误。#load d…

JavaScript快速入门(四)——JavaScript函数

函数声明 之前说的三种函数声明中&#xff08;参见JavaScript快速入门&#xff08;二&#xff09;——JavaScript变量&#xff09;&#xff0c;使用Function构造函数的声明方法比较少见&#xff0c;我们暂时不提。function func() { }和var func function() { }除了在声明提升…

mysql 5.6 ibdata1_mysql 里的 ibdata1 文件不断的增长?

我们在 Percona 支持栏目经常收到关于 MySQL 的 ibdata1 文件的这个问题。当监控服务器发送一个关于 MySQL 服务器存储的报警时&#xff0c;恐慌就开始了 —— 就是说磁盘快要满了。一番调查后你意识到大多数地盘空间被 InnoDB 的共享表空间 ibdata1 使用。而你已经启用了 inno…

HashMap解读

hashcode()方法和equals()方法。使用这两个方法&#xff0c;一个对象能够存储或从一个Hashtable&#xff0c;HashMap&#xff0c;HashSet 被检索。 hashcode(): This method is used to get unique integer for given object. This integer is used to find bucket when storin…

mysql查询两个小时前的数据_ORACEL数据库获取两个时间之前的小时数

一、获取两个时间之前的小时数select ceil((To_date(2008-05-01 02:00:00 , yyyy-mm-dd hh24-mi-ss) - To_date(2008-04-30 23:59:59 , yyyy-mm-dd hh24-mi-ss)) * 24 ) 在厂小时数 FROM SCM_GDHJLD2二、截取字符串select substr(DIAODAOJIAOWANSHIJIAN,1,18) from SCM_GDHJLD2…

windows下git bash乱码问题

1,/etc/gitconfig&#xff1a; [gui]encoding utf-8 #代码库统一用urf-8,在git gui中可以正常显示中文 [i18n]commitencoding GB2312 #log编码&#xff0c;window下默认gb2312,声明后发到服务器才不会乱码 [svn]pathnameencoding GB2312 #支持中文路径 2,/etc/git-completio…

redmine两个mysql_Redmine3.4.2安装记(Win10+MySql)

一、准备工具二、安装安装railsinstaller-3.3.0.exe&#xff0c;解压redmine-3.4.2.zip到Sites目录下(默认在系统盘C:\下)创建空数据库和用于访问redmine数据库的用户MySql5.7.18CREATE DATABASE redmine CHARACTER SET utf8;CREATE USER redminelocalhost IDENTIFIED BY redmi…

python删除文件夹中的jpg_Python简单删除目录下文件以及文件夹的方法

本文实例讲述了python简单删除目录下文件以及文件夹的方法。分享给大家供大家参考。具体如下&#xff1a; #!/usr/bin/env pythonimport osimport shutilfilelist[]rootdir"/home/zoer/aaa"filelistos.listdir(rootdir)for f in filelist:filepath os.path.join( ro…

关于生活

最近的实习生活&#xff0c;以及遇到的几个小伙伴让我真正意识到了“生活”。在此记录一下。以后我会每周至少一篇博文&#xff0c;记载这周所学&#xff0c;所思。 转载于:https://www.cnblogs.com/istudy2012/p/4376649.html

python去重且顺序不变_Python实现嵌套列表去重方法示例

发现问题python嵌套列表大家应该都不陌生&#xff0c;但最近遇到了一个问题&#xff0c;这是工作中遇到的一个坑&#xff0c;首先看一下问题raw_list [["百度", "CPY"], ["京东", "CPY"], ["黄轩", "PN"], [&quo…

【原创】Kakfa utils源代码分析(一)

Kafka.utils&#xff0c;顾名思义&#xff0c;就是一个工具套件包&#xff0c;里面的类封装了很多常见的功能实现——说到这里&#xff0c;笔者有一个感触&#xff1a;当初为了阅读Kafka源代码而学习了Scala语言&#xff0c;本以为Kafka的实现会用到很多函数编程(Functional Pr…

redhad yum 安装mysql_redhat7通过yum安装mysql5.7.17教程

rhel/centos系列linux操作系统自身没有mysql的源&#xff0c;需要自行下载安装。本文介绍如何安装mysql5.7.x数据库。第一步&#xff1a;下载源[rootclient ~]# wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm注意&#xff1a;选择mysql57-community-…

codechef Polo the Penguin and the Tree

一般xor 的题目都是用trie解决。 那这道题是在树上的trie; 首先&#xff1a;从root1,遍历树得到1到所有节点的xor 值。 然后对于每个点我们把其插入二进制树中。 对于每一个点查找其二进值异或值最大的数 依次遍历下来。 注意&#xff1a;边的数量开两倍以上&#xff0c;RE很多…

mysql memcached 使用场景_memcache 应用场景

一..memcache应用场景1.应用场景一&#xff1a; 缓解数据库压力&#xff0c;提高交互速度。它的一个总原则是将经常需要从数据库读取的数据缓存在memcached中。这些数据也分为几类&#xff1a;(1)、经常被读取并且实时性要求不强可以等到自动过期的数据。例如网站首页最新文章列…