QTranslator | QT 实现多语言转换

     最近在做毕业设计,想着要添加什么功能好,于是乎想到可以提升用户体验的支持多语言,随手网上查了下发现QT真有这个功能,简单地学了下,做个记录。

参考链接,感谢这些前辈:
https://blog.csdn.net/qq_35451572/article/details/79498037

-_____________________________________________________________________--------------

1、在*.pro文件里面添加
TRANSLATIONS += English.ts
Chinese.ts
根据自己想要添加多少种语言和什么语言视情况添加。

2、
a、通过qt ui设计师添加的文字

首先记得选上这个按钮
在这里插入图片描述
b、通过代码添加的文字,需要将需要转换的文字使用QObject::tr(“…”) 进行标记,否则程序中并不能对其进行识别。

3、生成ts 文件
在这里插入图片描述

4、修改ts文件

经过第三步后,会在文件目录下生成*.ts文件,用qt的Linguist(Qt 语言家)打开修改。
在这里插入图片描述
修改自己要转换的翻译文本

5、生成qm文件
在这里插入图片描述

6、代码实现

生成完qm文件后
在这里插入图片描述

7、多界面实现

因为我们做项目肯定不止一个界面,我们不可能每个界面都去重复这个步骤是吧,所以这里就用到了QEvent,里面有一个QEvent::LanguageChange,当改变语言时就会发送这个信号出来,我们用重写QEvent里面的void changeEvent(QEvent *e);来实现

virtual void changeEvent(QEvent *);

其他页面收到这个信号的时候就执行

this->ui->retranslateUi(this);

因为其他页面虽然收到了语言更改的信号,但是页面没有刷新,需要执行这个步骤使他刷新

PS.
博主本人一开始试的时候按照上面步骤6来然后执行7,运行后发现没有改变,后来把QTranslator m这个放到头文件里面,并为他new了,再来执行后面的就ok了,大家注意下。

大致上就是这样,更加详细的可参考上面的链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值