Qt中文显示

Qt学习之路【1】:QT显示中文问题 最近,公司项目的GUI界面使用的是Qt,研究了近两个月的Qt发现中文显示确实是一个问题,这个问题中主要存在两方面的问题: 【1】中文显示; 【2】中文乱码; 其中【1】问题出现的情景是:Qt的界面只有英文字母,中文一个都不显示,也不会出现乱码;【2】问题出现的情景是:Qt界面本来显示汉字的地方全部被乱码所代替。 【1】问题产生的原因是:Qt字库中没有相应的字体,提供给Q 阅读详情

转载自: http://blog.youkuaiyun.com/smalltreehere/article/details/8316238

 

QT默认的编码(unicode)是不能显示中文的,可能由于windows的默认编码的问题,windows默认使用(GBK/GB2312/GB18030),所以需要来更改QT程序的编码来解决中文显示的问题。

QT中有专门的一个类来处理编码的问题(QTextCodec)。

在QT3中,QApplication可以设置程序的默认编码,但是在QT4中已经没有了该成员函数。
可以以下的这些方法来设置编码。

1. 设置QObject的成员函数tr()的编码。

QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));

其中的codecForName函数是根据参数中的编码名称,在系统已经安装的编码方案中需找最佳的匹配编码类型,该查找是大小写不敏感的。如果没有找到,就返回0。

具体的转换代码看下面:
#include <QApplication>
#include <QTextCodec>
#include <QLabel>


int main(int argc,char *argv[])
{
   QApplication app(argc,argv);
   QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
   QLabel hello(QObject::tr("你好世界"));
   hello.setWindowTitle(QObject::tr("Qt中文显示"));
   hello.show();
   return app.exec();
}

注意:
setCodecForTr一定要在QApplication后面。不然没有效果。而且这种方法只会转换经过tr函数的字符串,并不转换不经过tr函数的字符串。

技巧:
可以用codecForLocale函数来返回现在系统的默认编码,这样更容易做多编码的程序而不用自己手动来更改具体的编码。


2. 使用QString的fromLocal8Bit()函数

这个方法是最快的,系统直接自动将char *的参数转换成为系统默认的编码,然后返回一个QString。

#include <QApplication>
#include <QTextCodec>
#include <QLabel>


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

   QApplication app(argc,argv);

   QString str;
   str = str.fromLocal8Bit("Qt中文显示");
   hello.setWindowTitle(str);
   hello.show();
   return app.exec();
}

3. 用QTextCodec的toUnicode方法来显示中文

#include <QApplication>
#include <QTextCodec>
#include <QLabel>


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

   QApplication app(argc,argv);
   QLabel hello(QObject::tr("你好世界").toLocal8Bit());
   QTextCodec *codec = QTextCodec::codecForLocale();
   QString a = codec->toUnicode("Qt中文显示");
   hello.setWindowTitle(a);
hello.show();
return app.exec();
}

 

Qt学习之路:解决Qt中文显示问题 在使用Qt进行中文应用程序开发时,经常会遇到中文显示乱码或者无法正常显示中文字符的问题。这篇文章将介绍一些常见的中文显示问题,并提供相应的解决方案和示例代码。通过上述解决方案,我们可以解决Qt中文显示问题,确保中文字符能够正确显示在Qt应用程序中。如果还有其他问题,欢迎提问。中文乱码是指在Qt应用程序中,中文字符显示为乱码或者不可识别的字符。这通常是由于字符编码不一致导致的。在某些情况下,Qt应用程序可能无法显示中文字符,只会显示为空白。Qt学习之路:解决Qt中文显示问题。问题二:中文字符显示为空白。 阅读详情

相关推荐

QT中解决中文显示问题

通过将中文文本提取到翻译文件中,再根据系统语言设置加载相应的翻译文件,可以实现中文和其他语言的切换。如果在QT中读取或写入包含中文字符的文件时出现乱码问题,可能是文件的编码方式不匹配。在使用QT进行中文应用程序开发时,有时会遇到中文显示方面的问题,如乱码、字符编码错误等。在上述示例中,"Microsoft YaHei"是微软雅黑字体的名称,可以根据实际情况选择其他支持中文字符的字体。在上述示例中,"UTF-8"是文件的编码方式,可以根据实际情况选择其他编码方式。根据实际情况选择适合的字符编码进行设置。

James_CODER的博客 885

Qt学习:Qt如何显示中文

qt默认的编码是unicode,它不能直接显示中文,因为中文的编码有多种,比如GBK、GB2312、GB18030等。所以需要使用一些方法来转换编码或者设置环境来解决中文显示的问题。

caridle的专栏 9087

解决Qt界面显示中文乱码问题

如果您的文本数据是以其他编码方式保存的(如GBK),那么在显示之前,您需要将其转换为UTF-8编码。通过正确设置编码、字体和操作系统语言环境,您可以确保在Qt应用程序中正确显示中文字符。在本文中,我将为您提供一些解决方案,以帮助您解决Qt界面显示中文乱码问题。在上述示例中,我们使用QFont类来创建一个字体对象,并将其设置为应用程序的默认字体。您可以在Qt应用程序中设置一个支持中文字符的字体,以确保正确的显示。在其他操作系统中,您可以根据具体的操作系统版本和设置界面进行类似的操作。解决方案二:设置字体。

FucMobile的博客 4340

QT中的中文显示问题

原文出处 QT中的中文显示问题QT默认的编码(unicode)是不能显示中文的,可能由于windows的默认编码的问题,windows默认使用(GBK/GB2312/GB18030),所以需要来更改QT程序的编码来解决中文显示的问题。QT中有专门的一个类来处理编码的问题(QTextCodec)。在QT3中,QApplication可以设置程序的默认编码,但是在QT4中已经没有了

huxuanhui的专栏 1225

深入了解BPM及BPM业务流程管理系统

BPM 即业务流程管理,是一种以规范化的构造端到端的卓越业务流程为中心,以持续地提高组织业务绩效为目的的系统化方法。它涵盖了业务流程的整个生命周期,包括流程的设计、执行、监控、分析和优化。BPM 作为一种先进的管理方法,对于企业提高运营效率、降低成本、提升客户满意度和增强竞争力具有重要意义。BPM 流程管理系统为企业实现 BPM 提供了强大的工具和支持,而 F2BPM 流程管理平台以其先进的技术架构、丰富的功能模块、简单易用的操作界面和强大的定制能力,成为企业实现业务流程管理的理想选择。

Stone3625的博客 2951

【win11+vs 2017+OpenCV4.5.5+Qt5.12配置】详细安装过程+小问题解决

由于Qt5无法与最新的vs2022兼容,扩展工具中一直显示不可用,所以将vs降级成vs2017。在安装Qt的过程中,会选择安装Qt套件,其中就的MCVS 2017,说明vs2017是与qt兼容的。当然也可以用qt creator这一原生IDE。OpenCV版本目前是最新的4.8.0,使用过程中没有什么问题,但是还是安装低版本大概率避免一些玄学问题。

qq_45306739的博客 3350

Qt 中文显示

Qt 中文显示

yttyffggh的博客 4504

QGroundControl高级配置与自定义功能实战指南

本文深入探讨了QGroundControl(QGC)的高级配置与自定义功能,为无人机开发者、系统集成商和高级用户提供实战指南。内容涵盖从品牌界面定制、自定义MAVLink消息处理,到插件开发与自动化部署的全流程,旨在帮助用户解锁QGC的隐藏潜力,打造专属的行业解决方案。

weixin_29234509的博客 239

Qt 中文显示 QMessageBox按钮中文显示

转载自 whl0630 最终编辑 whl0630 1,QT中如何显示中文呢? QTextCodec*pCodec=QTextCodec::codecForName("System");//获取系统字体编码 QTextCodec::setCodecForLocale(pCodec); QTextCodec::setCodecForCStrings(pCodec); QTextCo

alex川的专栏 5661

告别昂贵硬件!用Unity3D 2023 + ROS2 Humble搭建你的第一个SLAM仿真实验室(保姆级教程)

本文提供了一份详细的教程,介绍如何使用Unity3D 2023和ROS2 Humble搭建SLAM仿真实验室,无需昂贵硬件即可实现虚拟传感器模拟和算法测试。通过Docker容器配置、ROS2安装优化及Unity插件集成,开发者可以快速构建高精度的仿真环境,适用于自主导航、多传感器标定等场景。

weixin_42526353的博客 434

电机控制::软件架构::微型软件架构

所谓软件架构就是软件分层:HAL库,嵌入式操作系统,中间件,应用层。大型项目可参考借鉴ROS/PX4/Apollo/FMT等无人机、机器人、无人驾驶等开源项目;电机控制大型为AUTOSAR架构,小型跑裸机参考 前后台系统 或 微型实时操作系统对模块管理的思想。基本原理还是参照大型项目的架构来的,只是大部分层与块都相对简单,也没有操作系统这一层。硬件架构了解不同芯片组合及其各自的特点。1.FPGA+;2.架构;3.TC387+AUTOSAR架构,车规级,汽车领域常用。

one__leaf的博客 1695

qt显示中文

QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312")); QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312")); 原文:http://hi.baidu.com/whl0630/item/af075951e56cf9c89f26674d Qt

天道酬勤,勤能补拙 1032

【遥感数字图像处理(朱文泉)】第一章 数字图像基础

关于图像的定义、类型、模拟图像和数字图像

甜子yu的博客 4404

Qt显示中文和使用中文路径

在Qt中经常需要显示中文和适用中文路径,一般情况下中文显示没有问题,而中文路径需要手动设置,有一下几种方法: 第一种:windows下最常用最有效,直接使用国标码 #include QString fileName = QFileDialog::getOpenFileName(this,QString("读取原图"),QString("E:\\"),QString("*.jpg *.bmp *

云鹤起舞的博客 1万+

27、自闭症儿童治疗与玩具设计研究

本研究探讨了自闭症儿童的治疗方法与玩具设计之间的关联,分析了游戏疗法、音乐疗法和职业疗法等在治疗中的应用,并介绍了多种针对自闭症儿童的治疗玩具案例。通过用户研究和多学科合作,提出了以Pro-Ability为核心的设计理念,开发了结合音乐疗法和精细运动训练的智能玩具套件。研究总结了当前成果与局限性,并展望了未来发展方向,旨在为自闭症儿童提供更有效的康复支持。

keras9composer的博客 210

snmp MIB详解

每个 MIB 对象都由一个对象标识符(OID)和对象类型组成。OID 是一个由多个数字组成的路径(类似于 IP 地址),它标识了 MIB 中对象的层次结构。

dlz0836的博客 3721

QT4中文显示

相信搞过QT4.5文件系统的朋友都遇到过中文字体的问题,要不是显示乱码,就是显示空白。以前遇到过这样的问题,来天嵌的官网查了解决办法,找不到有效的办法,论坛有个QT程序,说是支持中文的,是管理员发的,不过有缺陷,而且也无法显示中文,后来经过努力,解决了问题。不过今天又搞这个的时候,由于之前的工程不知道怎么搞的不见了,又遇到了问题,几经周折,终于搞掂。所以我要把自己的解决问题的经历和方法放到论坛上,

吴建梅的专栏 1240

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

嵌入式QT中文显示的问题

最近在做嵌入式QT项目发现中文没法显示,于是百度QT嵌入式显示中文,基本上都是讲TTF字库转成QPF,费时费力。经多次试验,找出其方法: 1.下载相关TTF字库,例如字库:DroidSansFallback.ttf。 在main.cpp 中添加如下代码,使程序调用DroidSansFallback.ttf字库: #include <QFontDatabase> ...

timmyboys的博客 2557

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Qt显示中文的 方法

实际发布Qt在显示中文的时候会经常莫名的时好时坏。 在此整理了一些比较可靠的方法与一些备选方法。 1最快的方法: 使用QString的formLocal8bit() 此方法为:系统直接自动将char * 的参数转换成为系统默认的编码,然后返回一个QString。 #in

IBC 1915

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

关于QT中显示中文的一些研究

作为非英语国家人员开发的类库,QT有充分的理由优先考虑支持Unicode和各国自定义字库编码。大家也知道了QT对软件Internationalization有一套完整的开发模型,包括专门为此写的linguist程序。但是如果我们的软件只运行在中文系统下,最简单的方法是什么呢?最简单的方法,就是在main函数中调用QTextCodec::setCodecForTr( QTextCodec::code

ryanzz的专栏 1400

Qt5 中文显示

平台:Freescale imx6 编译系统:yocto Qt版本:5.5.1刚弄了个Qt程序到开发板,发现中文都没有显示,英文可以显示。 就加了个中文字库。DroidSansFallback.ttf。可以到这里下载 附上关键部分代码:int id = QFontDatabase::addApplicationFont("/usr/lib/fonts/DroidSansFallback.tt

jiang_dlut 7244
上一篇: Linux下PostgresQL数据库C语言接口:libpq (三)控制事务
下一篇: windows下的QT开发(学习一)
leonidasFlames
博客等级 码龄14年 9粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值