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了,大家注意下。

最新文章

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

热门文章

  1. PHP is_array() 函数
  2. Vue无限滚动加载数据
  3. react-ts模板/脚手架
  4. Dockerfile你值得拥有
  5. 搭建 WordPress 博客教程
  6. 封装react antd的表格table组件
  7. 安装黑苹果MoJave记录
  8. 域名备案&robots协议
  9. 深度学习 | sklearn的train_test_split()各函数参数含义解释(超级全)
  10. Sublime Text 3关闭更新新版本的提醒