首页 > 其他 > 详细

2-Qt关闭子窗口时执行特定代码

时间:2018-12-16 12:55:00      阅读:214      评论:0      收藏:0      [点我收藏+]

https://blog.csdn.net/naibozhuan3744/article/details/82689434

 

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

第一种方法是关闭窗口时调用窗口的析构函数,直接在构造函数添加如下代码,然后就可以调用子窗口析构函数了。

setAttribute(Qt::WA_DeleteOnClose);
 

第二种方法是调用QCloseEvent类。当窗口关闭瞬间,会发射一个关闭信号,调用槽函数void closeEvent(QCloseEvent* event);只需要重写该虚函数,在里面写入需要执行的特定代码就可以满足要求。只需要在需要关闭的窗口重写虚函数closeEvent(),在关闭该窗口瞬间,会自动调用该虚函数。该方法不会收其它窗口影响,也即是其它窗口关闭,不会调用这个窗口的closeEvent()虚函数。只会在该窗口类起作用。具体的代码用法如下所示:

#include <QCloseEvent>

protected:
void closeEvent(QCloseEvent* event);
 

void Widget::closeEvent(QCloseEvent *event)
{
Q_UNUSED(event);
qDebug("关闭了窗口");
}

2-Qt关闭子窗口时执行特定代码

原文:https://www.cnblogs.com/zhumengdexiaobai/p/10126117.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!