要实现点击关闭按钮弹出提示窗口,点击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函数来处理关闭操作。

Qt点击关闭界面的关闭按钮弹出提示窗口点击OK退出点击窗口的关闭按钮取消

原文地址: https://www.cveoy.top/t/topic/ixdz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录