前言
搞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
设置默认按钮
设置点击关闭按钮的返回值