• 11863阅读
  • 9回复

[提问]如何使QMessagebox的确定按钮用中文? [复制链接]

上一主题 下一主题
离线sunnydog
 
只看楼主 倒序阅读 楼主  发表于: 2008-03-19
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
QMessageBox::warning(**,**,**,QMessageBox::Yes);
如何使得这个确认按钮用中文呢?
恳请赐教
离线taomic

只看该作者 1楼 发表于: 2008-05-29
QMessageBox::warning(**,**,**,tr("Yes"));
翻译
xx.ts  Yes
xx.qm 确定
离线ioptimtic

只看该作者 2楼 发表于: 2008-05-29
你可以在main.cpp中写上
#include <QTextCodec>
#include <QTranslator>
#include <QLocale>
main
{
QTextCodec::setCodecForTr(QTextCodec::codecForName("gb2312"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
}
然后qmessagebox可以这样写QMessageBox::warning(**,**,**,“确定");
离线lovelydeath

只看该作者 3楼 发表于: 2008-05-29
直接在控件里面写中文就可以了
离线ww18031901

只看该作者 4楼 发表于: 2008-06-04
2 楼的 没看懂
3 楼的 试了不行
4楼的  你强 !
离线netlove

只看该作者 5楼 发表于: 2008-06-04
我都是这样用,QTextCodec *codec=QTextCodec::codecForName("GBK");
QMessageBox::warning(**,**,**,codec->toUnicode(“确定"));
不知道能不能解决你的问题。
离线netlove

只看该作者 6楼 发表于: 2008-06-04
对了,还拉掉一句,QMessageBox::setFont(QFont("unifont", *,**));我用的时候这个"unifont"一定要选,要不就显示不了中文
离线taomic

只看该作者 7楼 发表于: 2008-06-06
引用第1楼taomic于2008-05-29 12:50发表的  :
QMessageBox::warning(**,**,**,tr("Yes"));
翻译
xx.ts  Yes
xx.qm 确定

没看懂?那详细讲一遍吧
实例:
QMessageBox::warning(this,tr(wrong),tr(You are wrong),tr("Yes"));

(汉化步骤就不在这里啰嗦了,网上很多帖子.)

在生成的 .ts 文件里面就会有 Yes 这一项 ,对应的译成 "确定"
release 成 .qm 文件
编译,运行.OK了.
离线guixiefang
只看该作者 8楼 发表于: 2011-06-15
二楼的我试过,可以显示中文,谢谢!
离线diyuanbo

只看该作者 9楼 发表于: 2011-06-16
据我观察,C:\Qt\4.7.0\translations\qt_zh_CN.ts对你有帮助.用把Linguist把它输出成qm格式,
bool QTranslator::load ( const QString & filename)
void QCoreApplication::installTranslator ( QTranslator * translationFile )
这样做,不仅是"确定"的翻译问题,还有所有Qt内建字符串都翻译了.
快速回复
限100 字节
 
上一个 下一个