Qt弹出对话框"QMessageBox"的按钮显示改为中文

四行代码将"QMessageBox"的按钮显示改为中文

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

// 创建一个question弹出对话框,添加两个按钮:Yes和No
QMessageBox *msgBox = new QMessageBox(QMessageBox::Question, tr("对话框标题"), tr("对话框内容"), QMessageBox::Yes | QMessageBox::No);

// 将原本显示“Yes”的按钮改为显示“是”
msgBox->button(QMessageBox::Yes)->setText("是");

// 将原本显示“No”的按钮改为显示“否”
msgBox->button(QMessageBox::No)->setText("否");

// 弹出对话框
msgBox->exec();

  显示效果如下:

Qt弹出对话框

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

// 创建一个question弹出对话框,添加两个按钮:Yes和No
QMessageBox *msgBox = new QMessageBox(QMessageBox::Question, tr("对话框标题"), tr("对话框内容"), QMessageBox::Yes | QMessageBox::No);

// 将原本显示“Yes”的按钮改为显示“Play”
msgBox->button(QMessageBox::Yes)->setText("Play");

// 将原本显示“No”的按钮改为显示“Stop”
msgBox->button(QMessageBox::No)->setText("Stop");

// 启动对话框,用res变量记录用户最终点选的按钮
int res = msgBox->exec();
if(QMessageBox::Yes == res)
	Play();		// 继续播放
else if(QMessageBox::No == res)
	Stop();		// 停止播放
else
	...

你可能感兴趣的:(Qt)