Qt之中英文切换
·
概述:
利用Qt-语言家实现中英文切换目的,解决项目需求;
步骤:
1.在已有工程pro中添加代码;
2.在已有工程目录下创建RESOURCES文件夹(文件夹名字自取);
3.添加中英切换需要头文件;
4.点击QTcreator菜单栏->工具->外部->Qt语言家->更新翻译;
5.找到并打开Qt语言家->打开文件(2中全部文件)->此时会显示工程中文字一一对应添加中英文保存即可;
6.点击QTcreator菜单栏->工具->外部->Qt语言家->发布翻译;
注意:控件上的文件系统默认tr包裹,如代码中文字需要我们手动添加tr,也可以采用tr宏的方式,在编译时会提示那些文字没有被包裹;
代码如下:
.pro:
#-------------------------------------------------
#
# Project created by QtCreator 2020-01-22T20:27:24
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#中英切换
TRANSLATIONS += RESOURCES/tr_zh.ts \
RESOURCES/tr_en.ts
TARGET = ChSwichEn
TEMPLATE = app
SOURCES += main.cpp\
ChSwichEn.cpp
HEADERS += ChSwichEn.h
FORMS += ChSwichEn.ui
.h:
#ifndef CHSWICHEN_H
#define CHSWICHEN_H
#include <QWidget>
#include <QTranslator>//所需头文件
#include <QApplication>
namespace Ui {
class ChSwichEn;
}
class ChSwichEn : public QWidget
{
Q_OBJECT
public:
explicit ChSwichEn(QWidget *parent = 0);
~ChSwichEn();
private slots:
/**
* @brief on_pushButton_ch_clicked 中文槽函数
*/
void on_pushButton_ch_clicked();
/**
* @brief on_pushButton_en_clicked 英文槽函数
*/
void on_pushButton_en_clicked();
private:
Ui::ChSwichEn *ui;
QTranslator m_Trans;//创建对象
};
#endif // CHSWICHEN_H
.cpp:
#include "ChSwichEn.h"
#include "ui_ChSwichEn.h"
ChSwichEn::ChSwichEn(QWidget *parent) :
QWidget(parent),
ui(new Ui::ChSwichEn)
{
ui->setupUi(this);
}
ChSwichEn::~ChSwichEn()
{
delete ui;
}
void ChSwichEn::on_pushButton_ch_clicked()
{
bool flage = m_Trans.load("D:/QtApp/ChSwichEn/RESOURCES/tr_zh.qm");
qApp->installTranslator(&m_Trans);
ui->retranslateUi(this);
}
void ChSwichEn::on_pushButton_en_clicked()
{
bool flage = m_Trans.load("D:/QtApp/ChSwichEn/RESOURCES/tr_en.qm");
qApp->installTranslator(&m_Trans);
ui->retranslateUi(this);
}
其他类实现切换方法:
void changeEvent(QEvent *event);
void Test::changeEvent(QEvent *event)
{
if(event->type() == QEvent::LanguageChange){
this->ui->retranslateUi(this);
}
}
实现功能过程截图:




over:
欢迎大家关注作者在文末评论、点赞、转发以及批评指正!
如果大家有更好的方法或有问题可以在文末评论一起讨论!
共同学习!
共同进步!
文末一句话:
最近流感比较严重,大家尽量少去人多的地方,可以适当喝点烈酒,在这里感谢在抗战一线的白衣天使,你们辛苦了!
更多推荐


所有评论(0)