qt开发入门简介 一步一步学习Qt开发
qt开发入门简介 一步一步学习Qt开发
2024-09-27 04:19:54  作者:妈苊吢痌  网址: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);

}

最终的代码图片如下:



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

  • 温柔遗憾的游戏id(温柔遗憾的游戏id有哪些)
  • 2024-09-27温柔遗憾的游戏id有哪些往事不堪回首吟一曲流年殇借我一路星辰乖女孩没糖吃哭倒一片迷离迷恋你的双眸反正我最可爱帅得一塌糊涂倾一世丶等一人怪硪入戏太深別特麽假惺惺。
  • 索泰rtx 3060 属于高端还是低端(索泰RTX3090)
  • 2024-09-27索泰RTX3090年初的CES2022上,NVIDIA在RTX30系产品线的最顶端和最底端分别增加了一款新显卡,一个是RTX3050,另一个则是RTX3090TiRTX3090Ti原定是1月底解禁,然后因为一些神秘原因。
  • 怎样训练泰迪犬(如何训练泰迪)
  • 2024-09-27如何训练泰迪敬礼训练泰迪犬气质高贵,若它还能向人敬礼,那它就能更显得亲切可爱在训练敬礼时,应在其有坐下能力的基础上进行,可以采用一下几种训练方法在给犬喂食时,先另犬坐下,待犬开始吃时将食盆端起在慢慢的往上端食盆时。
  • 望谟县的美女(一大波望谟美女帅哥聚在一起)
  • 2024-09-27一大波望谟美女帅哥聚在一起最最最具期待的望谟“三月三”布依族文化节距离开幕还有7天好激动,好激动小编了解到,随着”三月三“的日渐临近相关的节目排练及各项准备工作正在紧张进行当中“哒哒哒哒,哒哒哒哒,起、转身,好的!脸上要露出丰。
  • 咬春是什么意思(咬春的意思)
  • 2024-09-27咬春的意思旧时北方京津等地立春日有吃春饼和生萝卜的习俗,称为“咬春”因为萝卜味辣,取古人“咬得草根断,则百事可做”之意老北京人讲究时令吃食,立春这天要吃春饼,吃春饼就是咬春,也有叫吃春盘的,这一日从一大清早,就。
  • 表达女儿对母爱的温柔暖心的句子(你觉得母爱是什么呢)
  • 2024-09-27你觉得母爱是什么呢时隔三年,在全家都已经杨康后,踏上了回家过年的旅程在确定好回家的日子后,父母就开始数着日子,盼着孩子们回来他们每天都要去采购点食物,塞满了整个冰箱;准备好舒适的床铺;打扫了全屋的尘土,等等,以最隆重的。
  • 世界上最大的山体雕刻在哪里(它被称为地球雕刻师)
  • 2024-09-27它被称为地球雕刻师冰川的运动不断“雕刻”着沿途的地貌,这位“雕刻师”从诞生到拿起“刻刀”,是个缓慢又奇特的过程01孕育冰川的界线晴朗的夏天,天山和祁连山麓的居民,能清晰地看到一条黑白分明的界线横过山腰,界线以上是银光闪。
  • 腰子怎样储存(腰子保存妙招)
  • 2024-09-27腰子保存妙招生的猪腰子短时间内可放保险室内保鲜,如果必须放冰箱内冷冻,到了冰箱冷藏也只能放3天左右解冻后的腰花不宜制作腰花菜肴,可把猪腰切成丝或片,再用来制作菜肴猪腰子味甘性平,具有一定补肾气、强腰的功效,对于体。
  • 你知道老子为什么写道德经吗(有生于无)
  • 2024-09-27有生于无2022-09无名,天地之始;有名,万物之母道德经是千年经典,其内涵深奥玄妙随着时代的进步,人们对它的理解也是与时代同步,与时俱进的“道”为“形而上”范畴,是天地所定下来的万物之规律“名”为“形而下”。
  • 男主双初恋甜宠文(4本男主是叔叔辈分的甜宠文)
  • 2024-09-274本男主是叔叔辈分的甜宠文大家好,我是涵涵,本期分享4本男主是叔叔辈分的古言甜宠文,男主克制深情,不动声色宠她入骨!一、《九叔万福》作者:九月流火短评:古言权谋甜爽文,心机深沉大小姐女主&冷淡薄情假九叔真皇子男主,侄女vs九叔。
  • 送礼怎样说更得体(送礼有学问做个有)
  • 2024-09-27送礼有学问做个有中华民族向来是礼仪之邦,“礼”文化也源远流长即使在今天,礼尚往来,也是人际交往的一项重要内容,在那或轻或重、或多或少的礼物中,我们既可以体味到人情缔结的温馨,又可以享受友好往来的欢乐但是,有时也会因为。