QT创建的窗口,如何接收点击窗体右上角'x'关闭窗口所发出的信号

1、介绍

用户在让一个窗体关闭之前,我们可能想先让它执行一些操作再退出。

我们可以使用QWidget类中的void closeEvent ( QCloseEvent *event )函数,此函数为定义为QWidget类的虚函数,可由我们来重写此函数。

在此窗体发出关闭信号时,会执行此函数。

2、使用

1、

在创建窗体的.cpp文件中定义函数,并进行重写,例:

点击查看代码
void MainWindow::closeEvent( QCloseEvent *event )
{
if ( maybeSave() ) {
writeSettings();
event->accept();
} else {
event->ignore();
}
}

可以通过参数event来控制是否让窗体关闭

点击查看代码
event->accept(); // 默认情况下接收关闭信号,关闭窗体
event->ignore(); // 忽略关闭信号,阻止窗体关闭

2、

在对应的.h文件中的private:里声明此方法原型。

3、

在.cpp文件顶部#include "QCloseEvent",作用是让编译器知道参数中的event的类型,不包含此头文件的话将产生error: invalid use of incomplete type 'class QCloseEvent' event->accept();报错信息。

posted @   江南王小帅  阅读(211)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2021-09-27 把a文本内容复制到B文本
点击右上角即可分享
微信分享提示