Qt QDialogButtonBox 英文翻译问题
来源:互联网 发布:个人云计算 编辑:程序博客网 时间:2024/06/05 01:08
环境:Qt 5.3.1 + vs2013
问题:
使用Qt Creator拖拉QDialogButtonBox到界面上,设计下,显示两个标准按钮:“确定”、“取消”。运行,结果两个按钮显示为 “OK”,“Cancel”。QMessageBox、QInputDialog……等均有此问题。解决过程:
1,google方案:复制qt_zh_CN.qm放入到工作目录下(或者作为资源编译进项目),使用QTranslator加载,QApplication.installTranslator(...).
结果:无效。
----------------------------
现在来跟踪源代码:
1,在Qt安装目录的src文件夹下,找到源文件QDialogButtonBox.cpp(Qt设计特点:类名对应源文件名,很方便include。搜索文件的话推荐使用Everything,速度快到令人发指的搜索神器)。
2,找到QDialogButtonBoxPrivate ::createButton,其中有这么一句代码:
QPushButton * button = new QPushButton (QGuiApplicationPrivate ::platformTheme ()-> standardButtonText( sbutton ), q);
3,F11跟进。QGuiApplicationPrivate::platformTheme()->standardButtonText()。看到如下代码:
switch ( button ) { case QPlatformDialogHelper ::Ok : return QCoreApplication ::translate ("QPlatformTheme" , "OK" ); ....
4,得知:依然是使用的translator嘛!那还得回到Translator上了。但是现在它使用的Contex名是QPlatformTheme,而不是QDialogButtonBox这样的类名。
5,找到qt_zh_CN.ts (注意是 .ts,这是一个xml格式的文件,经过编译可得到 .qm 文件。关于使用linguist)。搜索,里面根本没有QPlatformTheme的定义。那就怪不得translator不起作用了。
6,问题找到了,现在qt_zh_CN.ts里面手动添加:
<context> <name>QPlatformTheme</name> <message> <location filename="../src/widgets/qdialogbuttonbox.cpp" line="+42"/> <location line="+18"/> <source>OK</source> <translation>确定</translation> </message> <message> <location line="+54"/> <source>Cancel</source> <translation>取消</translation> </message>.....</context>
重新编译生成 .qm文件,加载之。
搞定。
0 0
- Qt QDialogButtonBox 英文翻译问题
- Qt 笔记: 关于 QDialogButtonBox
- Qt 之 QDialogButtonBox
- QT 之 QDialogButtonBox
- QDialogButtonBox
- QT之让QDialogButtonBox::Ok 变成中文”确定“显示
- QT之让QDialogButtonBox::Ok 变成中文”确定“显示
- Qt控件提示的使用方法和对QDialogButtonBox的理解
- 英文翻译
- 英文翻译
- 英文翻译
- 英文翻译
- QDialogButtonBox 类
- QdialogButtonBox使用方法
- 课程名称英文翻译
- 英文翻译1
- 地址英文翻译
- 学科英文翻译
- jslinux 对应到 linux kernel 3.8.5 上
- python thrift 示例<转>
- 关于/etc/hosts文件
- poj 3208 Apocalypse Someday (数位dp)
- Java异常:选择Checked Exception还是Unchecked Exception?
- Qt QDialogButtonBox 英文翻译问题
- HDU3240-Counting Binary Trees(Catalan数+求逆元(非互质))
- windows cmd命令下的最基本的压缩解压
- Android应用请求获取Root权限
- Java 覆盖私有方法
- Mac中安装MacPorts
- 【索引】AOAPC I: Beginning Algorithm Contests (Rujia Liu)
- uva11572Unique Snowflakes(滑动窗口)
- iPhone网络开发之如何使用NSURLConnection