qt国际化步骤
一.代码编写注意:
将需要翻译的字符串用 QObject::tr("Hello world!").
或者QApplication::translate("Dialog", "Hello world!", 0); 包含
例如:
第一种:
lab = new QLabel(tr("trans_text","text"), this);
tr参数第一个表示翻译字符(标识),第二个为翻译提示
第二种(一般为UI编辑器方式):
pushButton->setText(QApplication::translate("Widget", "click", 0));
二.生成翻译文件
1.在pro文件中加入关键字,例如:
TRANSLATIONS += XXX/en.ts \XXX/zh.ts
表示要在XXX目录生成相应的翻译文件。
2.保存项目后运行:
菜单栏->工具->外部->Qt语言家->lupdate
相当于执行了lupdate *.pro
会自动在目录生成两个文件:en.ts zh.ts
3.运行linguist工具加载en.ts zh.ts两个文件并分别进行相应的翻译。
每一个翻译完了按ctrl+ENTER确认下即可。
4.翻译完成后运行:
菜单栏->工具->外部->Qt语言家->release
相当于执行了 lrelease *.pro
会自动在相应目录生成两个文件:en.qm zh.qm
三、语言切换
1.在程序启动时候已经确定,不需要动态切换
//可定义成静态
QTranslator translator;
translator.load(Global::rootPath+Global::langPath+"zh.qm");
qApp->installTranslator(&translator); //qApp是全局的变量
注意上面语句一定要在页面实例化之前。
2.动态语言切换:每个类重写LanguageChange事件
void XXX::changeEvent(QEvent *e)
{
if(e->type()==QEvent::LanguageChange){ //如果是语言事件
label->setText(tr("trans_we")); //定义所有需要自动改变的部件
}else{
QWidget::changeEvent(e);
}
}
相应的触发槽中重新加载语言文件即可,会自动触发所有对象的changeEvent事件
translator->load("XXX/zh.qm");
qApp->installTranslator(translator); //qApp是全局的变量
戳原文:若这50道题过了 嵌入式开发学习已经赢在跑线上了!
【近期文章推荐】
1.Linux/Android/Java/PHP/简历模板等资料免费领
2.年薪20万程序员曾经做过的C语言试题,你都会吗
3.应届生一天收获4份offer,只因他做到了这4点
4.一周48家招聘单位要人 开发人员需求井喷
5.华为阿里工资高,看看人家的下班时间再抱怨
6.嵌入式9月高薪就业榜6翻天 月薪过万比率超过50%
7.华为校招15道C语言面试题分享
回复“0-71”任一数字,即可查看往期文章精选哦
长按二维码3秒
与10万程序高手做朋友
每天干货享不停
(记得识别二维码哟)
或微信搜索华清远见,即可关注我们
免费讲座 | 干货分享 | 程序员生活 | 就业招聘
高端IT就业培训专家
m.embedu.org
- 在健身房怎样减肥消脂?3步骤有效攻略
- 流性食道炎怎么治 抑制胃酸分泌是首要步骤
- 你写的代码,是别人的噩梦吗?
- 2018年ACCA免试条件和免试查询步骤
- 苦瓜煎蛋的做法步骤
- 新手学会堆肥只需要几个步骤,收集材料到完成堆肥的全过程
- 正则表达式太慢?这里有一个提速100倍的方案(附代码)
- 虾仁炒黄瓜的做法步骤
- 银行官网公告将歇业倒闭?实为被人篡改网页源代码
- 从重构到吐血 - 我是如何删掉 6 万行代码并且不删减原有功能的