当用户关闭 QT 应用程序窗口时,会触发关闭事件。在 Qt 中,这个事件是 QCloseEvent 类的一个实例。您可以通过重写 QWidget 类的 closeEvent() 函数来处理这个事件并执行任何必要的清理操作。
以下是一个示例:
void MyWidget::closeEvent(QCloseEvent *event)
{
QMessageBox::StandardButton resBtn = QMessageBox::question( this, "My App",
tr("Are you sure?\n"),
QMessageBox::Cancel | QMessageBox::No | QMessageBox::Yes,
QMessageBox::Yes);
if (resBtn != QMessageBox::Yes) {
event->ignore();
} else {
event->accept();
}
}
在此示例中,我们重写了 closeEvent() 函数,并创建了一个 QMessageBox 对话框,询问用户是否确定退出应用程序。如果用户选择“是”,则表示接受关闭事件,否则将忽略关闭事件。