QT 消息对话框按钮显示

前言

搞QT嘛,大多数都是军工。都要国产化,而且消息对话框的按钮的英文也不是很得劲,所以需要汉化。使用静态函数的按钮就是显示英文,汉化的代码如下。

void Widget::on_pushButton_clicked()
{
    QMessageBox box(QMessageBox::Information, QStringLiteral("提示"), QStringLiteral("是否保存?"));
    box.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
    box.button(QMessageBox::Ok)->setText(QStringLiteral("是"));
    box.button(QMessageBox::Cancel)->setText(QStringLiteral("否"));
    int button = box.exec();
    if(button == QMessageBox::Cancel){
        qDebug() << QStringLiteral("点击取消或者关闭");
    }else{
        qDebug() << QStringLiteral("点击是");
    }
}

void Widget::on_pushButton_2_clicked()
{
    QMessageBox box(QMessageBox::Information, QStringLiteral("提示"), QStringLiteral("是否保存?"));
    //通过 QMessageBox::RejectRole QMessageBox::AcceptRole 可以控制按钮的位置
    QPushButton *yesButton = box.addButton(QStringLiteral("是"), QMessageBox::RejectRole);
    QPushButton *noButton = box.addButton(QStringLiteral("否"), QMessageBox::AcceptRole);
    box.exec();
    if(box.clickedButton() == yesButton){
        qDebug() << QStringLiteral("是");
    }else if(box.clickedButton() == noButton){
        qDebug() << QStringLiteral("否");
    }else{
        qDebug() << QStringLiteral("点击关闭按钮了");
    }
}

QmessageBox功能挺强大的,可以设置默认的按钮,也可以设置点击窗口的关闭按钮实际上点击的是那个按钮,默认情况下是 QMessageBox::cancel
在这里插入图片描述
设置默认按钮

在这里插入图片描述
设置点击关闭按钮的返回值

你可能感兴趣的:(Qt杂谈,qt,开发语言)