Qt实现窗口关闭时提示确认退出
在Qt中,当用户点击窗口关闭按钮时,程序会直接退出,这样可能会导致数据丢失或其他不必要的操作。为了提高用户体验,我们可以在窗口关闭前给出一个提示框,询问用户是否确认退出。
一、实现思路
通过重写QWidget类的closeEvent(QCloseEvent *event)函数,在关闭窗口前弹出一个消息框,让用户选择是否退出程序。
二、代码实现
- 在头文件中添加以下代码:
protected:
void closeEvent(QCloseEvent *event); // 重写closeEvent函数
- 在源文件中实现closeEvent函数:
void MainWindow::closeEvent(QCloseEvent *event)
{
QMessageBox::StandardButton button = QMessageBox::question(this, "提示", "确认退出吗?",
QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
if (button == QMessageBox::Yes) {
event->accept(); // 接受退出事件
} else {
event->ignore(); // 忽略退出事件
}
}
以上代码中,QMessageBox::question函数用于创建一个确认框,并返回用户的选择。如果用户选择“是”,则eve