窗体关闭事件
理解 QCloseEvent
当用户尝试关闭一个窗口时(比如点击标题栏的“X”按钮,或通过菜单选择关闭),Qt 会生成一个 QCloseEvent事件
closeEvent()函数进行处理。
在 QCloseEvent中,有两个核心方法决定了窗口的命运:
-
accept():接受关闭事件,窗口将会被关闭(隐藏或销毁) -
ignore():忽略关闭事件,窗口将保持打开状态,不做任何改
头文件
#include "QCloseEvent"
重写 closeEvent 函数
protected: void closeEvent(QCloseEvent* event) override;
void QtWidgetsApplication2::closeEvent(QCloseEvent* event) { // 示例1:直接阻止关闭 // event->ignore(); // 示例2:询问用户是否确认退出 QMessageBox::StandardButton reply; reply = QMessageBox::question(this,codec->toUnicode( "确认退出"), codec->toUnicode("确定要关闭窗口吗?"), QMessageBox::Yes | QMessageBox::No); if (reply == QMessageBox::Yes) { // 用户选择"是",接受关闭事件,窗口会关闭 event->accept(); return; } else { // 用户选择"否",忽略关闭事件,窗口保持打开 event->ignore(); return; }

浙公网安备 33010602011771号