Qt只有点击关闭界面的关闭按钮弹出提示窗口点击OK退出点击窗口的关闭按钮取消其他执行this-close代码不弹出
要实现在点击窗口的关闭按钮时不弹出提示窗口,可以重写窗口的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()代码关闭窗口时,会弹出提示窗口并等待用户确认。
原文地址: http://www.cveoy.top/t/topic/ixee 著作权归作者所有。请勿转载和采集!