QT动态切换中英文

本文详细介绍了如何在Qt应用中实现动态语言切换功能,包括*.pro文件的配置、使用tr()输出字符串、利用QT自带工具lupdate和linguist生成ts和qm文件,以及如何将qm文件导入工程并进行语言选择。此外,还提供了关键代码示例,确保了应用在不同语言环境下都能正确显示本地化字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考文章:http://blog.youkuaiyun.com/wuff1988/article/details/7093522

                    http://blog.youkuaiyun.com/wangxueang224/article/details/7802306

我的demo程序下载:http://download.youkuaiyun.com/detail/hailmy/8024907

1. *.pro 文件新增

TRANSLATIONS += trans/zh.ts \
                trans/en.ts

2. 程序使用tr()来输出字符串

3. 使用QT自带工具 lupdate 生成ts文件(例如: lupdate demo.pro) 生成在 ./trans/

4. 使用QT自带工具 linguist 生成qm文件

5. 把生成的qm文件导入到工程里面


贴上切换代码

#define current_language "Chinese"
QTranslator *tor;

tor = new QTranslator();
if (current_language == "Chinese") {
    tor->load(":/trans/zh.qm");
} else if (current_language == "English") {
    tor->load(":/trans/en.qm");
}
qApp->installTranslator(tor);
this->ui->retranslateUi(this);

/*
    语言选择
*/
void MainWindow::on_comboBox_3_activated(int index)
{
    switch (index) {
    case 0:
        QApplication::removeTranslator(tor);
        tor->load(":/trans/zh.qm");
        qApp->installTranslator(tor);
        this->ui->retranslateUi(this);
        ui->comboBox_3->setCurrentIndex(0);
        current_language = "Chinese";
        break;
    case 1:
        QApplication::removeTranslator(tor);
        tor->load(":/trans/en.qm");
        qApp->installTranslator(tor);
        this->ui->retranslateUi(this);
        ui->comboBox_3->setCurrentIndex(1);
        current_language = "English";
        break;
    default:
        QApplication::removeTranslator(tor);
        tor->load(":/trans/zh.qm");
        qApp->installTranslator(tor);
        this->ui->retranslateUi(this);
        ui->comboBox_3->setCurrentIndex(0);
        current_language = "Chinese";
        break;
    }
    set_default_Form_conf();
}


 主要注意的是,动态切换完毕后,需要对lineEdit等控件重新setText下初始值。 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值