Qt笔记:窗口关闭事件处理
窗口关闭事件(QCloseEvent)是当鼠标点击窗口右上角的关闭按钮时,所触发的函数。如果你没有重写virtual closeEvent(QCloseEvent*event);这个虚函数的话,系统是默认接受关闭事件的,所以就会关闭窗体。但有的时候,我们可能需要保存文本或做一些其他的处理,旧需要重写该函数,用来在窗口关闭之前处理自己需要的事情。
.cpp文件重写该函数:
void Login::closeEvent(QCloseEvent *event)
//判断账号输入框是否为空(只是作为一个条件)
if(ui->lineEdit_AccountName->text().isEmpty())
//需要处理的内容
//接收这个事件,当前窗口会关闭
event->accept();
}else
//忽略这个事件,当前窗口不会关闭
event->ignore();
}
.h中声明该函数
class Login : public QWidget
Q_OBJECT
public:
explicit Login(QWidget *parent = nullptr);
~Login();
//这是虚函数,重写这个虚函数,当你按下窗口右上角的"×"时,就会调用你所重写的此函数.
void closeEvent(QCloseEvent *event);