Qt 实现点击关闭按钮弹出提示窗口,点击 OK 退出,点击取消按钮保留窗口
要实现点击关闭按钮弹出提示窗口,点击 OK 退出,点击窗口的关闭按钮取消,可以使用 Qt 的信号与槽机制来实现。
首先,在窗口类的构造函数中,连接关闭按钮的 clicked 信号与自定义的槽函数 onCloseButtonClicked:
connect(ui->closeButton, SIGNAL(clicked()), this, SLOT(onCloseButtonClicked()));
然后,在自定义的槽函数 onCloseButtonClicked 中,弹出提示窗口并连接确定按钮的 clicked 信号与自定义的槽函数 onConfirmButtonClicked:
void MainWindow::onCloseButtonClicked()
{
QMessageBox::StandardButton reply;
reply = QMessageBox::question(this, '提示', '确定要退出吗?', QMessageBox::Yes|QMessageBox::No);
if (reply == QMessageBox::Yes) {
// 点击确定按钮,退出程序
QApplication::quit();
}
else {
// 点击取消按钮,取消关闭操作
// 可以调用 ignore() 函数来忽略关闭事件
QCloseEvent *event = new QCloseEvent();
QApplication::sendEvent(this, event);
}
}
最后,在窗口类中重写 closeEvent 函数,当点击窗口的关闭按钮时,调用 onCloseButtonClicked 函数:
void MainWindow::closeEvent(QCloseEvent *event)
{
onCloseButtonClicked();
event->ignore();
}
这样,当点击关闭按钮时,会弹出提示窗口,点击确定按钮会退出程序,点击取消按钮会取消关闭操作。而点击窗口的关闭按钮时,也会调用 onCloseButtonClicked 函数来处理关闭操作。
原文地址: https://www.cveoy.top/t/topic/fzTF 著作权归作者所有。请勿转载和采集!