QT 多语言 中英文切换

        本文详细的介绍了利用Qt语言大师工具,实现Qt程序的多国家语言切换。例如新建界面、pro参数、更新翻译、QT预言家翻译语言、翻译中文、翻译英文、发布翻译、核心代码、h源代码、cpp源代码、演示效果等操作。
 

QT 多语言 中英文切换_第1张图片

 本文作者原创,转载请附上文章出处与本文链接。

QT 多语言切换目录

1 新建界面

2 pro参数

3 更新翻译

4 QT预言家翻译语言

 5 翻译中文

 6 翻译英文

 7 发布翻译

8 核心代码

8.1 .h源代码

8.2 .cpp源码

9 演示效果


1 新建界面

QT 多语言 中英文切换_第2张图片

2 pro参数

        pro文件加入语言文件

TRANSLATIONS =  LanguageChinese.ts \
                LanguageEnglish.ts

3 更新翻译

        QT预言家更新翻译

QT 多语言 中英文切换_第3张图片

4 QT预言家翻译语言

QT 多语言 中英文切换_第4张图片

 5 翻译中文

        打开翻译文件->目标语言中文->原文译文都写中文->全部确认->保存

QT 多语言 中英文切换_第5张图片

 QT 多语言 中英文切换_第6张图片

QT 多语言 中英文切换_第7张图片

QT 多语言 中英文切换_第8张图片

 6 翻译英文

        打开翻译文件->目标语言中文->原文译文都写中文->全部确认->保存

QT 多语言 中英文切换_第9张图片

 QT 多语言 中英文切换_第10张图片

 QT 多语言 中英文切换_第11张图片

 7 发布翻译

QT 多语言 中英文切换_第12张图片

 QT 多语言 中英文切换_第13张图片

8 核心代码

8.1 .h源代码

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include 
#include 
#include 
#include 

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void on_pushButton_clicked();

    void on_pushButton_2_clicked();

private:
    Ui::MainWindow *ui;

    QString strFile;
    QTranslator ch;
    QTranslator en;
};
#endif // MAINWINDOW_H

8.2 .cpp源码

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    strFile = "E:/QT/Creator/QLanguage/";
    //加载 翻译文件
    ch.load(strFile + "LanguageChinese.qm");
    en.load(strFile + "LanguageEnglish.qm");
}

MainWindow::~MainWindow()
{
    delete ui;
}

//中文
void MainWindow::on_pushButton_clicked()
{
    qApp->installTranslator(&ch);
    ui->retranslateUi(this);
}
//英文
void MainWindow::on_pushButton_2_clicked()
{
    qApp->installTranslator(&en);
    ui->retranslateUi(this);
}

9 演示效果

QT 多语言 中英文切换_第14张图片

QT 多语言 中英文切换_第15张图片

10 其它方法

        也可以使用ini文件、xml文件来实现同样的功能,新建两个字段通过全局判断来获取不同的字段来实现多语言切换。

你可能感兴趣的:(#,QT开发之路,第二章,数学建模)