Qt 多语言

记录Qt多语言的实现过程

目录

1.项目配置文件.pro配置

2.程序中的字符串用tr()封装

3.生成翻译文件

4.使用Qt语言家修改翻译文件

4.1使用Qt语言家打开

[4.2 .更改文件配置](#4.2 .更改文件配置)

[5. 生成qm文件](#5. 生成qm文件)

6.代码执行切换语言

6.1入口处

[6.2 事件执行](#6.2 事件执行)


0.效果

1.项目配置文件.pro配置

cpp 复制代码
TRANSLATIONS+= en_tr.ts \
                zh_tr.ts

2.程序中的字符串用tr()封装

cpp 复制代码
labInfo->setText(tr("字体名称"));

3.生成翻译文件

4.使用Qt语言家修改翻译文件

4.1使用Qt语言家打开

4.2 .更改文件配置

5. 生成qm文件

6.代码执行切换语言

6.1入口处

入口函数引用、声明

cpp 复制代码
//多语言使用
#include <QTranslator>
#include <QSettings>

QTranslator trans;   

入口函数内部

cpp 复制代码
 //多语言入口函数内部
    QApplication::setOrganizationName("CC-Qt");
    QApplication::setApplicationName("CC");
    QSettings settings;
    QString curLang = settings.value("Language","CN").toString();//读取注册表
    bool success =false;
    if(curLang=="EN")
        success = trans.load("en_tr.qm");
    else
        success = trans.load("zh_tr.qm");

    if(success)
        a.installTranslator(&trans);

    TextEditorExample example;
    example.show();

6.2 事件执行

cpp 复制代码
extern QTranslator trans;//声明外部变量
void TextEditorExample::on_actLang_EN_triggered()
{
    if(trans.load("en_tr.qm"))
    {
        ui->retranslateUi(this);
        labInfo->setText(tr("字体名称"));
        QSettings settings;
        settings.setValue("Language","CN");
    }
}


void TextEditorExample::on_actLang_CN_triggered()
{
    if(trans.load("zh_tr.qm"))
    {
        ui->retranslateUi(this);
        labInfo->setText(tr("字体名称"));
        QSettings settings;
        settings.setValue("Language","CN");
    }
}
相关推荐
阿里加多2 小时前
第 4 章:Go 线程模型——GMP 深度解析
java·开发语言·后端·golang
likerhood3 小时前
java中`==`和`.equals()`区别
java·开发语言·python
zs宝来了3 小时前
AQS详解
java·开发语言·jvm
telllong4 小时前
Python异步编程从入门到不懵:asyncio实战踩坑7连发
开发语言·python
wjs20246 小时前
JavaScript 条件语句
开发语言
阿里加多6 小时前
第 1 章:Go 并发编程概述
java·开发语言·数据库·spring·golang
2301_792674866 小时前
java学习day29(juc)
java·开发语言·学习
周末也要写八哥6 小时前
MATLAB R2025a超详细下载与安装教程(附安装包)
开发语言·matlab
blog_wanghao7 小时前
基于Qt的串口调试助手
开发语言·qt
果汁华8 小时前
Typer:基于类型提示的现代Python CLI框架
开发语言·网络·python