析构函数

析构函数(destructor) 与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,delete会自动调用析构函数后释放内存)。

摘自百度文库

void QWidget::closeEvent(QCloseEvent *event)

当Qt从窗口系统接收到窗口关闭请求时,将使用给定的事件调用此事件处理程序。

默认情况下,接受事件并关闭小部件。您可以重新实现此函数来更改小部件响应窗口关闭请求的方式。例如,可以通过对所有事件调用ignore()来防止窗口关闭。

主窗口应用程序通常使用此函数的重新实现来检查用户的工作是否已保存,并在关闭之前请求权限。例如,应用程序示例使用帮助函数来确定是否关闭窗口。

void MainWindow::closeEvent(QCloseEvent *event)

{

if (maybeSave()) {

writeSettings();

event->accept();

} else {

event->ignore();

}

}

** 注: 只是关闭窗口 **

bool QWidget::close()

关闭这个小部件。如果小部件关闭,则返回true;否则返回false。

首先,它向小部件发送一个QCloseEvent。如果小部件接受关闭事件,它将被隐藏。如果它忽略事件,什么也不会发生。QWidget::closeEvent()的默认实现接受关闭事件。

如果小部件有Qt::WA_DeleteOnClose标记,小部件也会被删除。不管小部件是否可见,关闭事件都会传递到小部件。

当最后一个可见主窗口(即没有父窗口的窗口)的Qt::WA_QuitOnClose属性设置关闭时,发出QApplication::lastWindowClosed()信号。默认情况下,此属性为所有窗口小部件设置,除了临时窗口,如启动屏幕、工具窗口和弹出菜单

窗口关闭时谁先调用已经很明了

代码

QWMainWindow::~QWMainWindow() {

qDebug() << "QWMainWindow::~QWMainWindow()";

delete ui;

}

void QWMainWindow::closeEvent(QCloseEvent *event) {

qDebug() << "mainWindow close event " << event->type();

}

消息打印

关闭子窗口

playBack = new PlayBackForm();

在closeEvent函数中关闭playBack子窗口,

delete playBack;///>如果子窗口playBack中重载了CloseEvent,函数实现为this.hide();用这个

//playBack.close;///>未在重载函数中使用this.hide()

编码注意

如果你已经在closeevent中delete过就别再析构函数中再次delete了。

点赞

收藏

分享

文章举报

MMTS_yang

发布了49 篇原创文章 · 获赞 1 · 访问量 2150

私信

关注

close函数 qt_QT中的close、closeEvent和析构函数的理解(基础知识)相关推荐

  1. 计算机信息学中比较大小的代码,信息学奥赛计算机基础知识.doc

    信息学奥赛计算机基础知识 目 录 青少年信息学奥林匹克竞赛情况简介5 第一章 计算机基础知识7 1.1 计算机的基本常识7 1.1.1 计算机的产生与发展7 1.1.2 计算机系统及工作原理7 1.1 ...

  2. c语言中字符指针变量输入,C语言指针基础知识实例讲解

    对程序进行编译的时候,系统会把变量分配在内存单位中,根据不同的变量类型,分配不同的字节大小.比如int整型变量分配4个字节,char字符型变量分配1个字节等等.被分配在内存的变量,可以通过地址去找到, ...

  3. 计算机领域中所谓课机是指,1.计算机基础知识题及答案

    第1章计算机基础知识(单选题) 这些题目必须做一遍,来自统考题库(期末考试题也多半出在这里),参考答案在另一个Word文档中(上传自己做的答案后才可以下载-).据说,统考题库中大约有10,000测试题 ...

  4. 光纤中的多种光学模式芯径_光纤基础知识介绍,看懂这一篇就够!

    弱电监控系统中,当链路传输距离超过100米后,我们就会考虑使用光纤传输,光纤具有抗干扰能力强,传输距离远,带宽大等优势,今天我们就来一起聊聊光纤的基础知识! 1.光纤的定义 光纤是一种柔软.纤细的固态 ...

  5. 在微型计算机中应用最普遍的数字编码是,计算机基础知识理论复习题及答案

    基础知识复习题及答案 一.选择题 1.第三代计算机所使用的电子器件是( ). A)晶体管B)电子管C)中小规模集成电路D)大规模和超大规模集成电路 2.微型计算机中使用的关系数据库,就应用领域而言是属 ...

  6. 计算机在无纸化办公系统中应用属于,福建省闽侯职专计算机基础知识练习题.doc...

    福建省闽侯职专计算机基础知识练习题 ?福建省闽侯职专计算机基础知识练习题 1.当前,计算机正朝着巨型化.微型化.智能化和______ 发展 A)信息化 B)网络化 C)数据化 D)集成化 2.当前电子 ...

  7. 机器学习中的数学——点估计(一):基础知识

    分类目录:<机器学习中的数学>总目录 相关文章: · 点估计(一):基础知识 · 点估计(二):矩估计 · 点估计(三):极大似然估计/最大似然估计(Maximum Likelihood ...

  8. python中使用什么注释语句和运算_Python基础知识

    本文标识 :Python_1 本文编辑 : Jack 风 编程工具 : Anaconda.Pycharm 阅读时长 : 12分钟 Python基础学习为什么那么多培训机构?那么多的程序员呢? 很简单啊 ...

  9. 写一个排序算法,可以是冒泡排序或者是快速排序,假设待排序对象是一个维数组。(提示:不能使用系统已有函数,另外请仔细回忆以前学习过的 基础知识)...

    //冒泡排序(数组排序) function bubble_sort($array) {$count = count($array);if ($count <= 0) return false;f ...

  10. c语言中指数形式怎么表示_C语言编程基础知识汇总学习,适合初学者!

    我们用一个简单的c程序例子,介绍c语言的基本构成.格式.以及良好的书写风格,加深小伙伴们对C语言的认识. 例1:计算两个整数之和的c程序: #include main() { int a, ...

最新文章

  1. matplotlib如何把坐标轴一横一竖给绘制出来
  2. CERTIFICATE OF APPRECIATION FOR DONATION FOR IBSS
  3. 开箱即用——用这个模板快速统筹企业车辆安排
  4. 单体系统如何拆分为微服务
  5. EXPORT_SYMBOL
  6. python编写ATM类_Python中编写类的各种技巧和方法
  7. 思科 IP 电话被指包含严重的 RCE 缺陷
  8. python制作动图、怎么运行_漫画:如何分析运行中的 Python 程序?
  9. java递归算法的实例最细讲解
  10. 数电2_2——逻辑函数的变换与化简
  11. vmware 桌面 服务器版,VMware Workstation
  12. zheng项目新建一个module学习学习
  13. 关于intelCPU缓存行,以及伪共享问题
  14. java jar 包启动程序指定代理
  15. AD19——双面PCB快速铺铜
  16. 【WAF剖析】——sql注入之bypass深度剖析
  17. postgresql 流复制切换
  18. IOS 苹果 App 转移图文详解
  19. asp.net(vb)与sql的连接(代码写在web.config中的)
  20. python微信自动发消息_如何利用python3实现微信定时自动发消息和图片?

热门文章

  1. 可恶的零宽空格—ZWSP
  2. 虚拟主机终极选购指南
  3. 深度学习各指标计算(Jaccard,Dice,Sensitive,Specificity,PPv,NPV,Accuracy)
  4. 计算机格式化为ntfs,WinXP下怎么把U盘格式化成NTFS格式?XP下把U盘格式化成NTFS格式图文教程...
  5. Linux——MySQL分表分区
  6. neo4j数据可视化_我如何使用neo4j可视化来自半结构化数据的连接
  7. javascript综合
  8. Acwing 187. 导弹防御系统
  9. Nginx 域名跳转配置
  10. 显卡天梯图2021年9月新版