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();报错信息。

浙公网安备 33010602011771号