QT开发--国际中文化(一)

本文介绍如何在QT程序中实现中文等非英文字符的显示。通过修改配置文件、使用lupdate和linguist工具生成翻译文件,并在代码中加载翻译文件完成国际化设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果想在程序中显示中文或其他非英文的文字怎么办?QT支持几种显示非英文的文字的方法。我们还是在前两节的hello程序基础上示例如何添加中文显示。

一、

在hello.pro的尾端加入TRANSLATIONS = hello.ts,加入后的hello.pro如下例所示:

TEMPLATE = app
CONFIG  += qt staticlib thread warn_on release
HEADERS += hello.h
SOURCES += hello.cpp/
               main.cpp

TARGET  = hello

TRANSLATIONS = hello.ts

 

二、

在终端中输入

lupdate hello.pro

然后回车,可以看到hello.pro所在目录下已经生成了一个hello.ts文件。这就是为什么我们刚才要在hello.pro加入TRANSLATIONS = hello.ts的原因。

另一个要注意的地方是,hello.ts中的翻译内容是根据程序中的tr("")内的字符串生成的。如我们例子中的tr("Hello")和tr("Quit"),但"You Clicked the Button!/n"因为没有tr,所以并不会出现在hello.ts中。

 


三、

在终端中输入

linguist&

然后回车,调出QT Linguist程序,在程序中打开刚才生成的hello.ts文件,然后写上相应的翻译文字,该例中我们只有两个字符串需要翻译:

Hello --> 你好

Quit --> 退出

输入好需翻译的文字后。点击QT Linguist程序菜单的File->Release...,生成hello.qm文件。把该文件放在与我们稍后编译好的hello程序放在同一目录。

 

四、

修改main.cpp。修改内容如下:

#include <qapplication.h>
#include <qfont.h>
#include <qtranslator.h>
#include "hello.h"

QFont font("",11,QFont::Bold);

int main(int argc,char ** argv)
{
    QApplication app(argc,argv);
    app.setFont(font,TRUE,0);
   
    QTranslator translator(0);
    translator.load("hello.qm", ".");
    app.installTranslator(&translator);

   
    Hello * dlg = new Hello();
    app.setMainWidget(dlg);
    dlg->show();

    return app.exec();
}

其中translator.load("hello.qm", ".")为指定与hello程序同一目录的hello.qm为翻译文件。如需放在不同的目录,可在translator.load的第二个参数中指定。如translator.load("hello.qm", "/usr/tran")是指翻译文件hello.qm是放在/usr/tran目录下。

 

五、

编译并运行hello。可以看到,对话框的标题跟按钮的内容都变成中文的了。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值