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


Qt中实现中英文界面切换可以通过以下步骤进行: 1. 准备好中英文翻译文件:Qt使用一种名为"Qt 语言家庭文件"(.ts)的文件来存储翻译文本。你需要准备好中文和英文的翻译文件,分别命名为`zh***然后依次打开中文和英文的翻译文件。在工具中,你可以逐个翻译每个文本字符串,并将其保存到对应的翻译文件中。 3. 在代码中加载翻译文件:在你的Qt应用程序的初始化代码中,使用`QTranslator`类来加载翻译文件。例如,你可以创建一个`QTranslator`对象,并使用`load()`方法加载对应的翻译文件。 4. 切换界面语言:在你的应用程序中提供一个切换语言的选项,例如一个菜单项或按钮。当用户选择切换语言时,你可以使用`QApplication::installTranslator()`方法来安装对应的翻译文件,并调用`QCoreApplication::translate()`方法来更新界面上的文本。 下面是一个简单的示例代码,演示了如何在Qt中实现中英文界面切换: ```cpp #include <QApplication> #include <QTranslator> #include <QMessageBox> int main(int argc, char *argv[]) { QApplication app(argc, argv); // 创建翻译器对象 QTranslator translator; // 加载中文翻译文件 if (translator.load("zh_CN")) { // 安装翻译器 app.installTranslator(&translator); } else { QMessageBox::warning(nullptr, "Error", "Failed to load zh_CN translation file."); } // 创建主窗口等其他代码... return app.exec(); } ``` 当用户选择切换语言时,你可以重新加载对应的翻译文件,并更新界面上的文本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值