专栏首页编程学习基地Qt附加工具--多语言国际化

Qt附加工具--多语言国际化

点击蓝字 关注我们

Qt附加工具介绍

  • Qt Assistant(Qt助手)
  • Qt Linguist(Qt语言家)
  • Qt Designer(Qt设计师)

Qt Assistant

Qt Assistant是可配置且可重新发布的文档阅读器,可以方便地进行定制并与Qt应用程序一起重新发布。Qt Assistant已经被整合进Qt Creator,就是前面介绍的Qt帮助。

选中关键词后按F1查看文档阅读器

Qt Designer

Qt Designer是强大的跨平台GUI布局和格式构建器。由于使用了与应用程序中将要使用的相同的部件,可以使用屏幕上的格式快速设计、创建部件以及对话框。使用Qt Designer创建的界面样式功能齐全并可以进行预览,这样就可确保其外观完全符合要求 。

shift+Alt+R进行预览

Qt Linguist

Qt Linguist 提供了一套加速应用程序翻译和国际化的工具。Qt 使用单一的源码树和单一的应用程序二进制包就可同时支持多个语言和书写系统。

第一个Qt程序

新建项目

新建完项目之后可以左下角的锤子构建项目,然后点击绿色三角标志运行程序

基于qt语言家的语言切换

❝Assistant(Qt语言家),类似于MSDN最权威的速应用程序翻译和国际化的工具。Qt 使用单一的源码树 和单一的应用程序二进制包就可同时支持多个语言和书写系统,有助于软件走向国际化,普度众生。 ❞

具体步骤:

  1. 生成.ts文件,lupdate
  2. 翻译成制定语言,生成.qm文件,lrelease。
  3. 加载qm文件,load()
  4. install

效果呈现

中文:

英文:

UI设计

拖动Lable控件和日历控件到界面

双击Lable控件修改名字,设置字体以及字体大小

双击菜单栏添加一级菜单,二级菜单无法直接输入中文,在属性里面修改

多语言

step1:pro文件底部添加对翻译的支持
TRANSLATIONS = Translate_EN.ts \
Translate_CN.ts
step2:生成.ts文件
step3:使用qt语言家翻译ts文件

将Translate_CN.ts文件用Qt Linguist打开 汉语­(一般不用改,我们使用的是汉语,只需要改汉译英的)

Translate_EN.ts

汉语­>英语

step4:生成.qm
step5:加载qm文件
定义QTranslator对象(类内定义)
QTranslator *m_Translator;

分配对象(构造中分配)

m_Translator = new QTranslator(this);

设置菜单响应

选择默认的trigered()即可,信号与槽后面介绍,按步骤来就行

切换英文
m_Translator‐>load("Translate_EN.qm");

切换中文

m_Translator->load("Translate_CN.qm");
step6:安装qm文件
qApp‐>installTranslator(m_Translator);
问题:日历还没有修改
ui‐>calendarWidget‐>setLocale(QLocale::Chinese);	//设置日历英文
ui‐>calendarWidget‐>setLocale(QLocale::C);			//设置日历中文

注意事项:

如果加载不成功,说明路径错了,QtCreator生成的.qm文件是在.pro目录下,需要移至debug目录下,才能正确读取.qm文件,实现语言的切换

源代码github地址:

https://github.com/ADeRoy/Qt_Demo.git

本文分享自微信公众号 - 编程学习基地(LearnBase),作者:DeRoy

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Qt介绍及环境搭建

    Qt是一个跨平台应用程序和UI开发框架。使用Qt只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。Qt Softwar...

    DeROy
  • 静态成员

    DeROy
  • Qt项目NotePad设计

    仿照记事本的菜单栏进行设计,利用利用Designer设计UI界面万能的UI设计方案

    DeROy
  • Qt 5.14版本正式发布(带下载链接)

      我们今天(2019-12-12)发布了Qt 5.14。该版本以及明年的Qt 5.15 LTS开始为通向Qt 6铺平道路。

    Qt君
  • 基于NXP i.MX28 MPU的疫情监控平台2-Qt环境搭建

    Qt 是一个跨平台的应用程序开发框架。使用Qt开发的应用程序,只需要编写一套代码,然后把这套代码放在不同平台的Qt环境去编译,就会生成可以运行在对应平台的应用程...

    单片机点灯小能手
  • Qt 5.15长期支持版本正式发布

      为了帮助准备过渡到Qt 6,在Qt 5.15版本中已将许多将从Qt 6.0中删除的类和成员函数标记为已弃用。除非您在项目中定义QT_NO_DEPRECATE...

    Qt君
  • Qt widget vs Qt Quick

    并不是说web语言不好, 我很喜欢web, 从一开始学习html到后来入坑nodejs可以说web领域给我带来了很多的见识同时还payed my bil...

    Jean
  • Qt官方示例-Quick Control.1样式

    Qt君
  • 资讯 | Qt 5.15中的新功能

      为了帮助准备过渡到Qt 6,在Qt 5.15版本中已将许多将从Qt 6.0中删除的类和成员函数标记为已弃用。除非您在项目中定义QT_NO_DEPRECATE...

    Qt君
  • PyQt中WindowFlags使用详解

    通过 setWindowFlags来设置窗口的 WIndowFlags,多个 WindowFlags之间用 | 连接,如:

    渔父歌

扫码关注云+社区

领取腾讯云代金券