您的位置:首页 > 编程语言 > Qt开发

QT笔记(3)——Qt的lineEdit和textEdit的右键菜单汉化

2017-05-06 00:19 357 查看
关于Qt一些控件鼠标右键菜单汉化的问题,网上有一些方法,试了一下,这里做一下总结:

1、汉化需要“.qm”这个文件,这个如果深入的话可以学习一下Qt的Linguist,这个网上很多;如果只做右键菜单汉化,在qt安装目录里找qt_zh_CN.qm这个文件拷贝出来就可以;文件一般在...\translations\qt_zh_CN.qm;

2、在资源管理器里加载;最好放在自己程序文件目录里,方便写rc文件的目录,方法是在Qt Creator窗口左边项目文件管理里——右键——添加新文件——Qt——Qt
Resource File——起个名字一路choose下去就好;然后选中.qrc——右键——add prefix——起个名字;然后.qrc——右键——open in editor——添加文件——选中qt_zh_CN.qm;

3、在main.cpp中添加如下:

#include "widget.h"
#include <QApplication>
#include <QTranslator>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTranslator translator;
qApp->installTranslator(&translator);
translator.load(":/language/qt_zh_CN.qm");
Widget w;
w.show();
return a.exec();
}
注意translator.load(),加载的是文件路径,也就就是qrc里的路径,之前添加的前缀记得写上,一般如果运行后,没有bug,但是右键菜单还是英文,问题都是这里;

如果运行没问题效果如下:



当然还没有完事,如果在textEdit里右键调出菜单还是英文,这里解决的办法如下或者参考:http://bbs.csdn.net/topics/390459238;

4、需要完整的汉化文件:widgets.qm;这个一个方法是自己编译,下载qt源文件,在.....src\widgets目录里找到widgets.pro,用qt打开,添加添加一行:TRANSLATIONS
+= widgets.ts;然后选择:工具->外部->Qt语言家->更新翻译,会目录下生成widgets.ts,然后用Qt Linguist打开widgets.ts,发布为widgets.qm;当然如果嫌麻烦可以到这里下载: https://pan.baidu.com/s/1c1PtsfY 密码: a7mb;

5、同上面一样将widgets.qm拷贝到目的,并且在qrc中加载;效果图如下:



6、在main.cpp中再次添加,完整代码如下:

#include "widget.h"
#include <QApplication>
#include <QTranslator>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTranslator translator;
qApp->installTranslator(&translator);
translator.load(":/language/qt_zh_CN.qm");
//添加qt_zh_CN.qm汉化;

QTranslator translator2;
qApp->installTranslator(&translator2);
translator2.load(":/language/widgets.qm");
//添加widgets.qm汉化;

Widget w;
w.show();
return a.exec();
}
另外感谢大神们的博客:http://blog.csdn.net/xbnlkdbxl/article/details/51322552;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: