一、背景:qt中的窗口不能像office一样,在点击关闭按钮的时候,会弹出是否保存,取消的界面,所有就要重新写关闭事件。
今天在项目中遇到需要重新修改这一个直接关闭窗口的功能,所以就要重载这个函数QCloseEvent。
二、
头文件:
#include <QCloseEvent>
在.h文件中protected:
void closeEvent(QCloseEvent *event);
.cpp中:
void 类名::closeEvent(QCloseEvent *event) //根据不同的需求进行添加,比如:
{
if(IsSaved)
{
qApp->quit();
}
int ret = QMessageBox::warning(0,"Warning",QString("%1 has been changed!\n Do you want to save it?").arg(filepath),QMessageBox::Yes |QMessageBox::No|QMessageBox::Cancel,QMessageBox::No);
if(ret == QMessageBox::Yes) //如果选择保存文件,则执行保存操作
{
do_file_Save(event);//保存文件
}
else if(ret == QMessageBox::Cancel)
{
event->ignore();;
}
else
{
qApp->quit();//再退出系统,qApp是指向应用程序的全局指针
}
}