Qt点击关闭X按钮弹出提示窗口点击OK退出点击X取消
要实现在Qt点击关闭按钮弹出提示窗口的功能,可以重写QWidget的closeEvent()函数。在该函数中,可以创建一个QMessageBox来显示提示窗口,并询问用户是否确认退出。
下面是一个示例代码:
#include <QtWidgets>
class MyWidget : public QWidget
{
public:
MyWidget(QWidget *parent = nullptr) : QWidget(parent)
{
// 创建一个按钮
QPushButton *button = new QPushButton("关闭", this);
connect(button, &QPushButton::clicked, this, &QWidget::close);
}
protected:
void closeEvent(QCloseEvent *event) override
{
// 创建一个提示窗口
QMessageBox::StandardButton resBtn = QMessageBox::question(this, "提示", "确定要退出吗?",
QMessageBox::Cancel | QMessageBox::No | QMessageBox::Yes,
QMessageBox::Yes);
if (resBtn != QMessageBox::Yes) {
// 如果用户点击取消或者No,取消关闭事件
event->ignore();
} else {
// 如果用户点击Yes,接受关闭事件
event->accept();
}
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyWidget widget;
widget.show();
return app.exec();
}
在上面的代码中,首先创建了一个按钮,并连接到QWidget的close()槽上,这样当用户点击按钮时,会触发关闭操作。
然后,重写了QWidget的closeEvent()函数。在该函数中,创建了一个QMessageBox来显示提示窗口,询问用户是否确认退出。根据用户的选择,接受或取消关闭事件。如果用户选择取消或者No,关闭事件会被忽略,窗口不会关闭;如果用户选择Yes,关闭事件会被接受,窗口会关闭。
最后,在main()函数中创建了一个MyWidget对象,并显示出来。
这样,当用户点击窗口的关闭按钮时,就会弹出提示窗口,要求用户确认是否退出。
原文地址: https://www.cveoy.top/t/topic/ixds 著作权归作者所有。请勿转载和采集!