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/ixdz 著作权归作者所有。请勿转载和采集!