要实现点击关闭按钮弹出提示窗口,点击 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/fzTF 著作权归作者所有。请勿转载和采集!

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