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();
报错信息。
作者:Jude_Zhang
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用BY-NC-SA 许可协议。转载请注明出处!
支持博主:如果您觉得文章对您有帮助,可以点击文章下方赞一下。您的鼓励是博主的最大动力!
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用BY-NC-SA 许可协议。转载请注明出处!
支持博主:如果您觉得文章对您有帮助,可以点击文章下方赞一下。您的鼓励是博主的最大动力!