qt开发入门简介 一步一步学习Qt开发
qt开发入门简介 一步一步学习Qt开发
2024-11-08 04:58:28  作者:妈苊吢痌  网址:https://m.xinb2b.cn/tech/xzj441457.html

实现多国语言切换的方法:

首先点击菜单 QT5 --> Create new Translation File,需要注意的是必须要选中工程的任何一个地方(即左边 Solution 中树形结构的工程位置),否则菜单是灰色不能点击状态的。




我们创建两个翻译文件:

helloworld_zh.ts

helloworld_en.ts

如果只需要中文的话,只需要创建 helloworld_zh.ts 即可。


大分辨率的图片会被头条降低质量,如果看不清楚的话,以下是分别截取的两个小图片:



保存并关闭 UI 设计师,回到工程,我们分别右键两个翻译文件,点击“lupdate”:


双击 helloworld_en.ts 或 helloworld_zh.ts,默认会调用 Qt 语言家打开相应文件:


在 1 的地方输入译文,点击 2 表示完成翻译,最后不要忘记点击“保存”。我只对标题 HelloWorld 作了中英文区别翻译,英文是:Hello World,中文是:你好 世界,而按钮 Chinese 与 English 无论是英文翻译包还是中文翻译包,都分别是:“中文”与“English”。保存退出后,还需要分别对两个翻译源文件调用“lrelease”:


调用 lrelease 后,会对 *.ts 文件翻译为相应的 Qt 翻译文件格式 *.qm:


我们可以使用记事本等文本文件打开 *.ts 文件,实际上它是 XML 文件:


下面我们先来实现程序启动的时候默认是中文的,main 函数修改成:

QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB18030"));

QApplication a(argc, argv);

QTranslator* translator = new QTranslator();

translator->load("helloworld_zh.qm");

a.installTranslator(translator);

HelloWorld w;

w.show();

return a.exec();

需要 include 两个头文件:

#include <QTextCodec>

#include <QTranslator>

编译运行:


我们需要实现的是点击按钮动态切换语言,“点击事件”涉及到一个很重要的功能:“信号/槽”,我们将在下一篇文章介绍,现在一起来实现鼠标点击事件,如果暂时不理解代码,欢迎查看下一篇文章。

打开 helloworld.h,添加两个函数(注意:需要在 private 后面添加 slots):

private slots:

void chinese();

void english();

在 private: 下面增加两个变量:

private:

QTranslator* trsChinese_;

QTranslator* trsEnglish_;

打开 helloworld.cpp,在构造函数中 ui.setupUi(this); 的后面增加:

trsChinese_ = new QTranslator();

trsEnglish_ = new QTranslator();

trsChinese_->load("helloworld_zh.qm");

trsEnglish_->load("helloworld_en.qm");

connect(ui.btnChinese, SIGNAL(clicked()), this, SLOT(chinese()));

connect(ui.btnEnglish, SIGNAL(clicked()), this, SLOT(english()));

函数 chinese() 与 english() 的实现如下:

void HelloWorld::chinese()

{

qApp->installTranslator(trsChinese_);

ui.retranslateUi(this);

}

void HelloWorld::english()

{

qApp->installTranslator(trsEnglish_);

ui.retranslateUi(this);

}

最终的代码图片如下:



编译运行,我们就可以实现动态切换语言啦。

  • 白玉思无瑕万鹏饰演的谁(万鹏白玉思无瑕杀青啦)
  • 2024-11-08万鹏白玉思无瑕杀青啦近期古装剧市场热闹非凡,热播的《锦绣南歌》剧情进入白热化阶段,而开播的《漂亮书生》也取得了一众网友好评,鞠婧祎饰演的雪团子太可爱啦,剧中不管是男配还是女配,都超级讨喜这还不够,近日又一古装剧《白玉思无。
  • 高级土味情话套路(有什么高级土味情话套路)
  • 2024-11-08有什么高级土味情话套路你眼瞎吗?撞我心口上了我是九你是三,除了你还是你女孩,我十拿九稳只差你一吻我想吃碗面,什么面,你的心里面前半生到处浪荡,后半生为你煲汤天冷了,有什么事到我被窝里说你说的每句漫不经心的话,全在我心上你知。
  • 赵本山历年春晚节目清单(网传赵本山将再登春晚)
  • 2024-11-08网传赵本山将再登春晚截止到2021年,赵本山离开春晚舞台已经十年,宣布暂停小品的创作也已经八年了尽管淡出舞台的这些年,她很少在公共场合露面,但江湖上有关他的传说依旧很多每到春节来临,赵本山将要登上春节联欢晚会的消息便不胫。
  • 益生菌可以长期吃吗(益生菌不可以长期吃)
  • 2024-11-08益生菌不可以长期吃益生菌不可以长期吃益生菌的主要获取途径是肠胃的分解和发酵若长期食用益生菌制剂,不仅会导致肠道功能衰退,自身繁殖有益菌的能力也将逐渐消失;严重的情况还有可能患上“益生菌依赖症”,终生都需要口服益生菌产品。
  • 冬天吃多羊肉对胃好吗(冬季吃羊肉会带来3大好处)
  • 2024-11-08冬季吃羊肉会带来3大好处冬天一到,火锅店,烧烤店都挤满了人,和同事聚会时吃个火锅,和朋友见面时一起吃顿烧烤,想起来都是很幸福的事情在吃火锅,烧烤的时候,食材是多种多样的,但是羊肉是必不可少的食材在冬季也适当吃一些羊肉,会给身。
  • 咪咕音乐3d至臻音质(aigo推出新款车载U盘)
  • 2024-11-08aigo推出新款车载U盘随着数字时代的到来,我们聆听音乐的方式,从很多年前的磁带、CD唱片,慢慢转换成数字音乐(MP3等)尤其是有车族,碰到喜欢听的音乐或是新歌,往往需要大费周折在各种渠道下载,而那些d版音乐往往也是码率很低。
  • 乐理中的休止符 休止符与延音线
  • 2024-11-08乐理中的休止符 休止符与延音线休止符休止符是表示声音停止的记号,它出现在不需要弹响时在拍数一致的条件下,每一个音符都对应有相同时值的休止符,下图是音符和休止符的时值对照音符与休止符时值对照全音符二分音符四分音符八分音符延音线延音线。
  • 少量绑高马尾会秃吗(年轻人不要秃姑姑)
  • 2024-11-08年轻人不要秃姑姑中新网北京5月28日电(张依琳)“万事开头难,除了脱发容易”当代年轻人有种难言之隐——脱发,不少人感慨:每天早上醒来,头发在枕头上、地上、梳子上......就是没在头上5月28日是全国爱发日,“528。
  • 周杰伦小周(小周周会叫爸爸啦)
  • 2024-11-08小周周会叫爸爸啦来源:中国娱乐网综合2016-02-1409:42:18周杰伦一家2015年7月12日,周杰伦与昆凌的女儿出生,转眼间小周周已经约7个月大2016年2月13日,周杰伦女儿小周周会叫爸爸啦!2月13日晚。