Qt QMessageBox按钮中文显示

转自:https://blog.csdn.net/Carl_Qi/article/details/83998889

QMessageBox是Qt框架下专门用于弹出对话框的类,一般会提供几个按钮(例如:Ok、Cancel、Yes、No、Ignore等)供用户点击选择。对话框的按钮在默认情况下为英文显示,本文提供了一种简单快速的修改为中文的方法。

 1 // 创建一个question弹出对话框,添加两个按钮:Yes和No
 2 QMessageBox *msgBox = new QMessageBox(QMessageBox::Question, tr("对话框标题"), tr("对话框内容"), QMessageBox::Yes | QMessageBox::No);
 3 
 4 // 将原本显示“Yes”的按钮改为显示“是”
 5 msgBox->button(QMessageBox::Yes)->setText("");
 6 
 7 // 将原本显示“No”的按钮改为显示“否”
 8 msgBox->button(QMessageBox::No)->setText("");
 9 
10 // 弹出对话框
11 msgBox->exec();

 

 

 温馨小提示:上述方法是将默认的英文按钮改为中文按钮,其实完全可以任意自定义按钮的显示,例如在制作一个音乐播放器软件时,当音乐播放停止后,自动弹出对话框,用户点击“Play”按钮则选择继续播放,用户点击“Stop”按钮则停止播放,就可以用下面的程序实现。

 1 // 创建一个question弹出对话框,添加两个按钮:Yes和No
 2 QMessageBox *msgBox = new QMessageBox(QMessageBox::Question, tr("对话框标题"), tr("对话框内容"), QMessageBox::Yes | QMessageBox::No);
 3 
 4 // 将原本显示“Yes”的按钮改为显示“Play”
 5 msgBox->button(QMessageBox::Yes)->setText("Play");
 6 
 7 // 将原本显示“No”的按钮改为显示“Stop”
 8 msgBox->button(QMessageBox::No)->setText("Stop");
 9 
10 // 启动对话框,用res变量记录用户最终点选的按钮
11 int res = msgBox->exec();
12 if(QMessageBox::Yes == res)
13     Play();        // 继续播放
14 else if(QMessageBox::No == res)
15     Stop();        // 停止播放
16 else
17     ...

 

posted @ 2020-04-07 13:40  阳光下的小土豆  阅读(2442)  评论(0编辑  收藏  举报