Qt QTranslator 实现多语言转换
2024-10-20 16:05:46
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了,大家注意下。
最新文章
- Ubuntu下开启php调试模式,显示报错信息
- Delphi的Trim函数
- 如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion
- Linux内核分析——进程描述与创建
- 阿里云对象存储OSS————跨域资源共享(CORS)(m3u8 无法加载m3u8:跨域访问被拒绝)
- AFNetworking2.4.1 解析
- Android基础之Activity
- java not enough memory error.
- 转-C# 操作 Excel 常见问题收集和整理
- android 删除的警告对话框
- Django模板-基础知识
- Fitnesse - Slim Tables
- php echo和print_r和var_dump的区别
- 知识点干货—多线程同步【6】之synchronized
- 数据库MySQL、redis主从切换shell脚本
- nohup 与 &; 的区别
- Kali学习笔记4:Wireshark详细使用方法
- leetcode 54. Spiral Matrix 、59. Spiral Matrix II
- Servlet--HttpServlet实现doGet和doPost请求的原理
- java生成txt文件,读txt文件