Qt程序关闭前,有时候需要弹出一个确认窗口,如何实现呢?
当鼠标点击窗口右上角的关闭按钮时,会触发一个窗口关闭事件(QCloseEvent),只需要覆写窗口类的closeEvent(QCloseEvent *event)函数,就可以对此事件进行相应处理


用到的头文件

#include<QMessageBox>
#include<QCloseEvent>

编辑窗口类


class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();//覆写closeEvent函数void closeEvent(QCloseEvent *);
private:Ui::MainWindow *ui;
};

源文件实现closeEvent(QCloseEvent *)函数

void MainWindow::closeEvent(QCloseEvent *e){//窗口关闭时弹出的提示窗口QMessageBox msgBox;msgBox.setText("提示");msgBox.setInformativeText("确认退出?");msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);msgBox.setDefaultButton(QMessageBox::Ok);int ret = msgBox.exec();if(ret == QMessageBox::Ok){//若用户点击确认,则接收这个事件,当前窗口会关闭e->accept();}else{//若用户点击取消,则忽略这个事件,当前窗口不会关闭e->ignore();}
}

效果:

Qt实现关闭窗口触发事件相关推荐

  1. 关于js关闭窗口的事件和用法

    原文地址为: 关于js关闭窗口的事件和用法 Onunload与Onbeforeunload Onunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本 ...

  2. PyQt5 技术篇-QWidget、QDialog程序窗口关闭closeEvent()触发事件方法重写

    我用 QWidget 来做个示例,它在程序窗口关闭时会触发 closeEvent() 事件,我们把它重写后就能实现关闭窗口时触发我们想要的效果. 重点就两个,如下所示: 重点一: 重写组件的 clos ...

  3. 《基于Qt的VR编辑器开发》(Yanlz+Unity+SteamVR+5G+AI+VR云游戏+Qt+编辑器+跨平台+人机交互+触发事件+立钻哥哥+==)

    <基于Qt的VR编辑器开发> <基于Qt的VR编辑器开发> 版本 作者 参与者 完成日期 备注 YanlzFramework_Qt_V01_1.0 严立钻 2019.09.04 ...

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

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

  5. QT的QTreeWidget节点触发事件(一)

    声明:网络上给出的这方面的资料较少,且都针对的是第一级节点的触发绑定事件,但是当遇到有不止一级父节点的子节点后,相关内容较少,因此通过实践整理出了以下方法,进行QTreeWidget节点触发事件的绑定 ...

  6. 关闭弹框事件_关于js关闭窗口的事件和用法

    JS本身最高事件等级到window级,你可以对window进行onunload等监听来判断是否关掉当前浏览器窗口. 对于以前的单一窗口管理模式,关闭浏览器窗口即关闭应用程序窗口,是可以做到的. 但是现 ...

  7. qt中关闭窗口资源释放问题

    针对QDialog对象,如果是栈上分配的,就不存在资源泄漏问题,但是当对象是new出来的,并且以局部对像存在,当关闭时,窗口只是隐藏,资源是没有释放的,每次exec后者需要delete来释放,另外一种 ...

  8. Bootstrap- Modal对话框如何在关闭时触发事件

    下表列出了模态框中要用到事件.这些事件可在函数中当钩子使用. 事件 描述 实例 show.bs.modal 在调用 show 方法后触发. $('#identifier').on('show.bs.m ...

  9. iframe关闭时触发事件_超详细的mysql数据库事件--定时任务介绍及日常管理

    概述 由于最近在做某些日志表的清理工作,会用到定时任务,所以这里也简单介绍一下mysql如何用事件来实现定时任务. 后面会介绍两个日志表清理实现方案,一种是传统的定时delete,另一种会稍微复杂点, ...

最新文章

  1. java io nio aio_Java IO、NIO、AIO知识总结
  2. Spine学习六 - 碰撞检测
  3. 微信小程序开发-微信登陆流程
  4. 【微服务架构】SpringCloud组件和概念介绍(一)
  5. tuxedo 强制重启
  6. ThinkPHP5.0版本和ThinkPHP3.2版本的差别
  7. (转)Fintech路上券商究竟做错了什么?漏做了什么?
  8. Ubuntu菜鸟入门(五)—— 一些编程相关工具
  9. Hive基本原理及环境搭建
  10. JavaScript断点调试高级教程
  11. 七策定纲存储之道 宏杉科技专注创新勇突破
  12. 设计模式--模版方法
  13. 学计算机跨考航天航空,往届生跨考计算机经验
  14. 谈谈BGA芯片S3C2440的焊接
  15. from PyQt6 import QtCore, QtGui, QtWidgets ImportError: DLL load failed while importing QtGui:
  16. 每天只需15分钟!情感励志视频剪辑一天200多,不用真人出镜
  17. signed integer overflow: -2147483648 - 1 cannot be represented in type ‘int‘
  18. 007 - 配置 Clion 调试显示 Qt 变量
  19. 2018年年初的面试经验谈
  20. 2015上半年手机GPU排行榜

热门文章

  1. Unreal Engine 4 动画系统介绍
  2. 【得物技术】推荐系统是如何做排序的
  3. 使用vue自定义分页器
  4. 用cm搭建Hadoop环境
  5. D900变板儿砖1小时惊魂记
  6. Redis怎么存储对象
  7. ESP8285、ESP8266 和 FPM10光学指纹模块做指纹锁协议 爆光
  8. 年薪200万的程序员,推荐的10大Python开源免费工具!
  9. 360 c语言笔试题 或与问题
  10. sobel算子 matlab实现6,sobel算子,matlab实现