今天写个用Qtdesigner 设计器设计的界面实现语言动态切换,程序的界面如下
我想实现下拉语言选择的combox实现语言的切换,其实现的代码如下
.pro文件
TRANSLATIONS = hellotr_CH.ts\
hellotr_EN.ts
QT += core gui
TARGET = hellotr
TEMPLATE = app
SOURCES += main.cpp\
dialog.cpp
HEADERS += dialog.h
FORMS += dialog.ui
OTHER_FILES += \
hellotr_EN.qm \
hellotr_CH.qm
做了两个语言文件,一个英文-英文,一个英文-中文。
在建好工程,程序代码写完后编译会在工程的源文件目录下生成两个文件hellotr_CH.ts\
hellotr_EN.ts
在Qt creator中 工具->外部->Qt 预言家,更新lupdate,后
打开Qt库的bin文件夹中有个可执行文件linguist,在这个软件中打开上面的两个文件,翻译,最后保存,发布,编译工程后,工具->外部->Qt 语言家,release发布,只执行程序
注意:*.qm文件要拷贝到build目录下执行
void Dialog::switchlanguage(int flag)
{
qDebug("flag=%d",flag);
QTranslator translator(qApp);
bool b = false;
if(flag==0)
{
//chinese
b = translator.load("hellotr_CH.qm");
if(b==false)
qDebug("load err!");
else
qDebug("chinese load ok");
qApp->installTranslator(&translator);
// this->ui->retranslateUi(this);
}
else if(flag==1)
{
// english
b = translator.load("hellotr_EN.qm");
if(