2-Qt关闭子窗口时执行特定代码
Posted zhumengdexiaobai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2-Qt关闭子窗口时执行特定代码相关的知识,希望对你有一定的参考价值。
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关闭子窗口时执行特定代码的主要内容,如果未能解决你的问题,请参考以下文章