TouchGFX使用心得(8)——通配符的中文显示(呕心沥血)

本文介绍了如何在TouchGFX中实现中文通配符的显示,包括两种方法:直接加载Unicode字体库(适用于模拟)和使用二进制字体文件(适合单片机)。详细讲解了每种方法的具体步骤、注意事项,特别是针对STM32平台的实操技巧。

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

前言

通配符的中文的显示是我一直很疑惑的,当时搞了5,6天才搞定了,当时网上找的资料也不行,非常绝望,后来还是经过不断的探索才摸索出来的,网上应该没有相同的资料。现在分享给大家。(开头先说明一下,方法一只适合模拟,真要用还得方法二)

方法一

方法一是直接在通配符那里加载Unicode中文字体库
大家可以去看看这个链接,知道字体库范围
链接: Unicode中文字符集.
在没添加范围之前,中文是显示不出来的
在这里插入图片描述
在这里插入图片描述
可以看到屏幕是??,没有显示巴黎 或者 梅西

我们加上字库范围,注意十六进制表示
在这里插入图片描述
加上后
在这里插入图片描述
在这里插入图片描述
可以看到,我们的通配符字体可以正常显示了

需要注意的问题(非常重要!!!!)

这个方法是在Vstudio中运行,可以使用的方法,但是如果你在keil编译器里面使用这个方法,你可以试试,每次改一改重新编译都会编译十几,二十分钟,大大降低开发速度(懂得都懂)。而且内存也不够啊。所以这种方法也就给你们看看。真要搞到单片机上面,还是需要第二种方法,使用二进制文件的方法。

方法二

官方文档

这个我当初也找了很久,因为他不是写跟文字相关,所以我并不知道这种方法,这也是找了很久才找到的
先给大家看看官方文档,大家尽量自己认真看一下
链接: Binary Fonts.
链接: Font Caching.

具体操作

在这里插入图片描述
先把这个勾上,生成字体的二进制文件
有一点要注意的是前面字体那里要加上中文字体库范围
在这里插入图片描述
然后我们点击生成代码
这时候,回到VStudio里面,直接运行生成的代码

可以看到很多警告,而且画面全空了,这是正常现象,因为我们还没写读取二进制的文件字体库。所以我们所有文字都不能显示(不管是通配符,还是标签里的文字)。接下来我们要加载二进制文件了

加载二进制文件

1 :首先我们要先了解,我们的二进制字体文件到底在哪里
按照以下路径,我们可以找到我们的二进制字体文件,可以看到它的大小有900k,其他三个只有1k,那是因为这个文件包含了中文字库,(如果你的这个文件很小,说明你刚刚忘记改字体的包含文件了,按照上一步先改了,再回来看看)。

在这里插入图片描述
2 下一步就是加载它,
我们找到这个文件
在这里插入图片描述
加入代码,代码给你们贴好了

#include <gui/common/FrontendApplication.hpp>
#include <fonts/GeneratedFont.hpp>
#include <texts/TypedTextDatabase.hpp>
#include <fonts/ApplicationFontProvider.hpp>
#include <fonts/FontCache.hpp>
#include <fonts/CachedFont.hpp>
#include <texts/TypedTextDatabase.hpp>
#include <texts/TextKeysAndLang
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值