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