qt 关闭窗口的槽函数_2-Qt关闭子窗口时执行特定代码(示例代码)

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

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

setAttribute(Qt::WA_DeleteOnClose);

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

#include

protected:

void closeEvent(QCloseEvent* event);

void Widget::closeEvent(QCloseEvent *event)

{

Q_UNUSED(event);

qDebug("关闭了窗口");

}

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页