Qt 界面上控制中英文显示切换

windows下GBK编码方式的中文移植到ubuntu下UTF-8编码方式的工作是件很令人头疼的事情,经历过一次的我深深知道是多么的痛苦,

所以从今天起我打算写程序不在代码中用一个中文.那大家要问了,要是想显示中文怎么办,那就使用Qt的预言家!


我用一个最简单的例子来阐述如何做到在界面上来切换中英文显示!


1.用qtcreator创建一个 基于QMainWindowMainWindow即可


2.MainWindow构造函数中初始化翻译器并安装在程序上

translator = new QTranslator(this);

qApp->installTranslator(translator);


on_actionEnglish_triggered() //初始化初始状态


3..创建两个action 用来切换中英文显示

void on_actionEnglish_triggered();

void on_actionChinese_triggered();

切换其实就是翻译器加载不同的翻译文件然后从新设置一下该翻译地方的文本


void MainWindow::on_actionEnglish_triggered()

{
    translator->load(":/translations/english");
    retranslateUi();
}
void MainWindow ::on_actionChinese_triggered ()
{
    translator->load(":/translations/chinese");
    retranslateUi();
}

void MainWindow::retranslateUi()                         //注意! 被翻译的字符串一定要用 tr("xxxx") 括起来 这样在Qt语言家里才能找到待翻译的字符串

{
    ui->menuLanguage->setTitle(tr("language"));         //需要更新菜单栏文本  
    ui->actionChinese->setText(tr("chinese"));          //需要更新action文本
    ui->actionEnglish->setText(tr("english"));          //需要更新cation文本 
}
 

那翻译文件从哪里获取呢? 对了!就是用到Qt 语言家来生成 .

1.首先要生成 .ts文件 , 此文件Qt语言家可以识别打开来进行翻译

在.pro文件中加入  TRANSLATIONS = english.ts  chinese.ts ,

然后Qtcreator 工具 -->外部 -->qt 语言家-->lupdate 后就可以在源代码目录下发现 english.ts chinese.ts文件了.

2.用语言翻译家打开这两个文件将字符串翻译成对应的语言即可然后保存

3.通过qt语言家把.ts文件生成.qm文件提供给程序使用.

qt语言家界面点击 文件-->发布 即可在 .ts同级目录下找到 同名的.qm文件


然后将.qm文件放在合适的路径  qrc也好,直接扔到一个文件夹也好 只要能找到即可


软件开发,项目订制-- http://qtapp.taobao.com

联系qq: 2216144104


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值