QT中文显示乱码解决方式

目录

一. 对于QT5.0以上的版本(含)

二. 对于QT5.0以下的版本

三. QT语言家

四. Demo/相关包


 

本篇简单介绍中文显示乱码解决的几种方式。

一. 对于QT5.0以上的版本(含)

QString::fromLocal8Bit("中文");

 

二. 对于QT5.0以下的版本

上一种方式可以使用,也可以使用下面的方式:

在main.cpp修改为如下代码段

#include <QTextCodec>

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

    //解决中文乱码
    //QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK")); 
    QTextCodec::setCodecForTr(QTextCodec::codecForName("system"));    //若英文系统,则用GBK
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));

    CMainWindow w;
    w.show();
    
    return a.exec();
}

在引用时,前面加入tr:

tr("中文");

 

三. QT语言家

中大型项目,对于代码非常严苛的,可使用此种方法,避免在代码加入中文字串,用于Release版本。

1. 在.pro工程文件,加入

TRANSLATIONS += linguist_CN.ts

2. 点击QT Creator的菜单栏->Tools->Extenal->Linguist->Update Translations

更新翻译后,会在工程目录下,生成linguist_CN.ts文件。

3. 点击你自己电脑开始菜单栏->所有程序,找到入下图的Linguist语言家工具

在语言家工具里,打开linguist_CN.ts文件,选择自己需要修改的译文,每改一处要点一次绿勾确认。

完成查看,绿勾勾上的,是你改过的翻译;点击保存按键;

再点击文件->发布,在工程目录下,会生成linguist_CN.qm文件,此文件就是翻译后的文件

4. 回到QT Cretor工程,在main.cpp,加入如下代码

#include <QTranslator> //新增


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

    QTranslator translator; //新建翻译类
    translator.load("linguist_CN"); //导入生成的文件
    a.installTranslator(&translator); //装入

    MainWindow w;
    w.show();
    
    return a.exec();
}

编译为Release版本后,把linguist_CN.qm放入Release同级目录下,添加相关运行库,即可运行(库在电脑C盘有,不知道位置可以百度)。

 

四. Demo/相关包

另附QT语言家的Demo供大家参考(百度云盘):

链接: https://pan.baidu.com/s/1970CAdXQ7YepRA5UwaKh0Q 提取码: wrh4

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值