Qt5中文显示
来源:互联网 发布:js history 清除 编辑:程序博客网 时间:2024/05/24 03:23
Qt5中文显示
解释了文字实现的过程,再来看看要怎样让Qt5实现中文输出。
先看中文的编码:
查看Qt程序的界面描述文件*.ui,发现文件头开头是
这说明UI中已经使用的是UTF8的编码格式。
查看QtCreator->工具->选项->文本编辑器->行为->文件编码
默认编码选择:UTF8
这样源码字符集就是UTF8编码
只有编码还不够,还要编码可以转换为可见的文字,于是再来看Qt5是否有对应的字体文件:
Qt5默认使用的字体文件都放在/usr/lib/fonts目录下, Qt5支持三种类型的字体,*.ttf(需要freetype支持)、*.pfa、*.qpf.
Fonts目录下有很多字体,默认都是Qt5自带的,除了qpf文件外,都可以使用桌面系统的字体查看器查看,使用字体查看器可以查看其中是否有对中文字体的支持,另外还可以使用应用程序中指定字体的方法检验字体支持:
Qt5自带的字体文件是没有中文支持的。
应为Qt5默认并不会首先匹配我们加进去的字体,所有如果程序不指定font,中文还是无法显示。
考虑到嵌入式系统的特殊性,可以在/usr/lib/fonts目录下只放一种字体,例如仿宋、雅黑等,这样一方面可以解决中文显示的问题,又可以减小image大小,两全其美;缺点嘛,程序不能随便用字体了,不过嵌入式嘛:)
Ps:以上同样适用于其他文字
Shell中文显示
Shell终端无法输出中文存在两个原因:
串口查看工具的编码方式不是UTF8,这种问题常见于windows机器上;
板子上的busybox不支持中文编码UTF8输出
对于原因2,解决方法是再编译busybox的使用打开Unicode的support。
为什么我打开了Unicode support 中文还是?????
原因是Busybox默认的UTF8范围只到767,而中文的最大值为U+9FA5,所以还需要修改
Range of supported Unicode characters
将其设为大于U+9FA5的值
保存设置,编译
Shel终端可以显示中文了:)
原文:http://blog.csdn.net/wisape/article/details/38494005
解释了文字实现的过程,再来看看要怎样让Qt5实现中文输出。
先看中文的编码:
查看Qt程序的界面描述文件*.ui,发现文件头开头是
这说明UI中已经使用的是UTF8的编码格式。
查看QtCreator->工具->选项->文本编辑器->行为->文件编码
默认编码选择:UTF8
这样源码字符集就是UTF8编码
只有编码还不够,还要编码可以转换为可见的文字,于是再来看Qt5是否有对应的字体文件:
Qt5默认使用的字体文件都放在/usr/lib/fonts目录下, Qt5支持三种类型的字体,*.ttf(需要freetype支持)、*.pfa、*.qpf.
Fonts目录下有很多字体,默认都是Qt5自带的,除了qpf文件外,都可以使用桌面系统的字体查看器查看,使用字体查看器可以查看其中是否有对中文字体的支持,另外还可以使用应用程序中指定字体的方法检验字体支持:
代码中加入
****为字体名称;Qt5自带的字体文件是没有中文支持的。
从桌面系统或网上下载中文字体,例如fangsong.tty(仿宋字体),拷贝到/usr/lib/fonts目录下,先使用:
检验,结果中文字体显示正常,OK,而且是仿宋没错:)应为Qt5默认并不会首先匹配我们加进去的字体,所有如果程序不指定font,中文还是无法显示。
考虑到嵌入式系统的特殊性,可以在/usr/lib/fonts目录下只放一种字体,例如仿宋、雅黑等,这样一方面可以解决中文显示的问题,又可以减小image大小,两全其美;缺点嘛,程序不能随便用字体了,不过嵌入式嘛:)
Ps:以上同样适用于其他文字
Shell中文显示
Shell终端无法输出中文存在两个原因:
串口查看工具的编码方式不是UTF8,这种问题常见于windows机器上;
板子上的busybox不支持中文编码UTF8输出
对于原因2,解决方法是再编译busybox的使用打开Unicode的support。
为什么我打开了Unicode support 中文还是?????
原因是Busybox默认的UTF8范围只到767,而中文的最大值为U+9FA5,所以还需要修改
Range of supported Unicode characters
将其设为大于U+9FA5的值
同时enable Allow wide Unicode characters on output选项
总结来说,修改内容有
Kernel 需要修改配置如下
File systems --->
DOS/FAT/NT Filesystems --->
(utf8) Default iocharset for FAT
-*- Native language support --->
(utf8) Default NLS Option
<*> Simplified Chinese charset (CP936, GB2312
<*> NLS UTF-8
make busybox-menuconfig
build/package/busybox/busybox-1.22.x.config
Busybox修改配置
Busybox Settings --->
[*] Support Unicode
(200000) Range of supported Unicode characters
[*] Allow wide Unicode characters on output
保存设置,编译
Shel终端可以显示中文了:)
0 0
- Qt5中文显示问题
- qt5 中文显示问题
- qt5.5显示中文
- Qt5 中文显示
- Qt5中文显示
- qt5显示中文乱码
- Qt5显示中文
- QT5显示中文
- imx6ul+QT5中文显示
- Qt5.2显示中文方法!!!
- Qt5.2.0之中文显示:
- VS2013 Qt5显示中文字符
- Qt5中文显示乱码问题
- QT5中文显示出现乱码
- QT5中文显示乱码解决方法
- QT5 窗口标题显示中文
- 嵌入式Linux上Qt5的中文显示
- VS2013 QT5.3.2中文显示乱码问题
- springmvc实体类类型转换
- python基础教程学习笔记 第二章 列表和元组
- mysql 远程连接
- easyui datagrid pagination 自定义分页
- HDU 1358 Period (next跳表找最小循环节)KMP
- Qt5中文显示
- oracle数据库软件和实例安装好以后的配置
- SQL : Join 与 union
- U-BOOT移植的前世今生
- jquery easui tabs注册完刷新另一个tabs
- Git 进阶之「设置别名」
- easyui messager show和confirm
- NRF52832NFC读写
- HashMap根据Value值的大小排序