Qt只有点击关闭界面的关闭按钮弹出提示窗口点击OK退出点击窗口的关闭按钮取消执行this-close不弹出
在Qt中,可以通过重写closeEvent事件来实现点击窗口的关闭按钮时弹出提示窗口,并根据用户选择执行相应的操作。
以下是一个示例代码:
#include <QCloseEvent>
#include <QMessageBox>
#include <QWidget>
class MyWidget : public QWidget
{
public:
MyWidget(QWidget *parent = nullptr) : QWidget(parent) {}
protected:
void closeEvent(QCloseEvent *event) override
{
QMessageBox::StandardButton button = QMessageBox::question(this, "提示", "确定要退出吗?",
QMessageBox::Yes | QMessageBox::No);
if (button == QMessageBox::Yes) {
event->accept(); // 接受关闭事件,执行关闭操作
} else {
event->ignore(); // 忽略关闭事件,取消关闭操作
}
}
};
在上述代码中,重写了closeEvent事件处理函数。当用户点击窗口的关闭按钮时,会弹出一个提示窗口询问用户是否确定要退出。如果用户点击了"确定"按钮,则调用event->accept()接受关闭事件,执行this->close()关闭窗口;如果用户点击了"取消"按钮,则调用event->ignore()忽略关闭事件,取消关闭操作。
请注意,上述代码中的MyWidget是继承自QWidget的自定义窗口类,你可以根据自己的实际情况来修改。
原文地址: https://www.cveoy.top/t/topic/ixd0 著作权归作者所有。请勿转载和采集!