QT 点击关闭按钮时提示是否退出同时按钮显示为中文

本文是对以下两篇博文的一些修改和结合:

拦截QT关闭窗口的CloseEvent
Qt标准对话框之QMessageBox

结合两篇博文做一些修改我们可以轻易的达成:中文显示由关闭按钮事件弹出的对话框

具体代码:

//以Dialog为例

//Dialog.h
#include <QCloseEvent> //加上头文件
class Dialog : public QDialog
{
    Q_OBJECT

public:
    explicit Dialog(QWidget *parent = 0);
    void closeEvent(QCloseEvent *event); //在Dialog.h加上这句
    ...
    //省略其他代码
    ...
};

//Dialog.cpp
#include <QCloseEvent>
#include <QMessageBox>
void Dialog::closeEvent(QCloseEvent *event)
{
    QMessageBox button(QMessageBox::Warning, QString(tr("警告")),QString(tr("警告:正在试图结束程序!")));
    button.setStandardButtons (QMessageBox::Yes|QMessageBox::No);
    button.setButtonText (QMessageBox::Yes,QString("结束"));
    button.setButtonText (QMessageBox::No,QString("返回"));

    if(button.exec() != QMessageBox::Yes)
    {
            event->ignore();
    }
}

样例:
这里写图片描述

当点击“关闭按钮”和“不接受”时,会返回原窗口,不会退出程序;
当点击“接受”时才会退出程序。

猜你喜欢

转载自blog.csdn.net/baishuiniyaonulia/article/details/81228487