要实现在点击窗口的关闭按钮时不弹出提示窗口,可以重写窗口的closeEvent事件处理函数。在该函数中判断是通过点击关闭按钮触发的关闭事件,然后取消关闭操作,否则执行this->close()代码关闭窗口。

以下是一个示例代码:

#include <QtWidgets>

class MainWindow : public QMainWindow
{
public:
    MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) {}

protected:
    void closeEvent(QCloseEvent *event) override
    {
        // 判断是通过点击关闭按钮触发的关闭事件
        if (event->spontaneous()) {
            // 取消关闭操作
            event->ignore();
        } else {
            // 执行关闭操作
            event->accept();
        }
    }
};

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    MainWindow mainWindow;
    mainWindow.show();

    return app.exec();
}

在上述示例中,重写了MainWindow类的closeEvent函数,通过判断event->spontaneous()来确定是通过点击关闭按钮触发的关闭事件。如果是,则调用event->ignore()取消关闭操作,否则调用event->accept()执行关闭操作。

这样,当通过点击关闭按钮关闭窗口时,不会弹出提示窗口,而是直接取消关闭操作;而通过其他方式调用this->close()代码关闭窗口时,会弹出提示窗口并等待用户确认。

Qt只有点击关闭界面的关闭按钮弹出提示窗口点击OK退出点击窗口的关闭按钮取消其他执行this-close代码不弹出

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

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