QT5实现中英文界面动态切换

目录

1. ts文件配置

环境配置

创建ts文件

 配置语言过渡软件

2.制作翻译文件(.qm)

3.添加翻译的文件

4.代码使用

5.效果展示


1. ts文件配置

环境配置

pro文件添加中英文翻译过渡文件(.ts

TRANSLATIONS = res/lang_zh_CN.ts \
            res/lang_en_US.ts \
            res/lang_vie_HE.ts

在工程的根目录,手动创建res文件夹

创建ts文件

打开编译环境对应的Desktop软件.输入lupdate指令

 配置语言过渡软件

打开Qt语言家, 编译环境也要和编译环境对应.

打开对应的中英文过度文件(.ts),然后根据自己的需求配置文件.

2.制作翻译文件(.qm)

打开Desktop软件,输入lrelease 指令

生产的文件如下图

3.添加翻译的文件

新建一个文本文件,名称修改为language.qrc,添加内容如下

<RCC>
    <qresource prefix="" >
        <file>res/lang_en_US.qm</file>
        <file>res/lang_zh_CN.qm</file>
        <file>res/lang_vie_HE.qm</file>
    </qresource>
</RCC>

在工程pro文件添加翻译文件

RESOURCES   += language.qrc

4.代码使用

变量定义和函数定义

private slots:
    void on_comboBox_activated(const QString& arg1); //combox槽函数声明
    void changeEvent(QEvent* e); //changeEvent槽函数声明
private:
    int aa; // 标记
    QComboBox* combo; //
    QTranslator tran; //翻译器
    QApplication* qApp; //

函数内容

/**
 * @brief UIDemo01::on_comboBox_activated 更改中英文
 * @param arg1
 */
void UIDemo01::on_comboBox_activated(const QString& arg1)
{
    aa = ui->comboBox->currentIndex();
    if (aa == 0) {
        qDebug() << "下标为0"; //调试用
        tran.load(":/res/lang_en_US.qm");
​
    } else if (aa == 1) {
        qDebug() << "下标为1"; //调试用
        tran.load(":/res/lang_zh_CN.qm");
    } else {
        qDebug() << "下标为其他"; //调试用
    }
    qApp->installTranslator(&tran);
}
​
/**
 * @brief UIDemo01::changeEvent 调用installTranslator后,系统会给窗体发送信号将产生了changeEvent槽产生event
 * @param e
 */
void UIDemo01::changeEvent(QEvent* e)
{
    QWidget::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
        ui->retranslateUi(this);
        break;
    default:
        break;
    }
}

5.效果展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值