利用qt语言家显示中文

以前在代码里使用了包含汉字的字符串,往往显示在界面上就变得不正常。尽管QString::fromLocal8Bit()函数有时能解决问题,但不是总能成功。这篇博客介绍一种更可靠的办法--利用qt语言家来显示中文。

qt语言家翻译原理如下:把代码中想要翻译为汉语的字符串,用tr()函数包含起来。这些字符串应该是由字母、数字等普通字符组成的。在qt工程中建立ts文件。这个文件统计出所有被tr()函数标记的字符串。然后用qt语言家软件读取ts文件中所有的内容,并在语言家的界面中逐个进行英汉翻译。翻译结果保存于qm文件里。程序运行时,将自动读取qm文件,并完成翻译。

1)在pro文件中加入TRANSLATIONS变量:

#-------------------------------------------------
#
# Project created by QtCreator 2020-04-12T13:51:37
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = language
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h
TRANSLATIONS += lingst.ts

等号右边的是ts文件的文件名。

在qt的菜单栏上选择“工具”-“外部”-“Qt语言家”-“更新翻译”。在pro文件的同级文件夹下将出现lingst.ts文件。

2)完成cpp代码

main.cpp,注意QTranslator的用法

#include "mainwindow.h"
#include <QApplication>
#include <QTranslator>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QTranslator trans;
    trans.load("lingst");//注意,此处不要.ts后缀
    a.installTranslator(&trans);
    MainWindow w;
    w.show();

    return a.exec();
}

mainwindow.cpp。注意tr()函数的用法

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    setWindowTitle(QObject::tr("I love programming"));
}

MainWindow::~MainWindow()
{

}

3)用qt 语言家软件(从 开始菜单\Qt\中找)打开ts文件。

在MainWindow.cpp中找到待翻译的短语,进行翻译。你将看到短语前面有一个问号:

点击这个文问号,它变为绿色的对号,说明翻译完成了。保存文件。

4)点击菜单栏 文件>>发布。qm文件将生成。

5)编译工程,然后将qm文件放到exe文件的同级路径下。运行程序,观察结果。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值