硬汉嵌入式论坛

 找回密码
 立即注册
查看: 472|回复: 9
收起左侧

[TouchGFX] 大家有试过使用中文字库显示吗

[复制链接]

3

主题

12

回帖

21

积分

新手上路

积分
21
发表于 2023-7-31 14:48:18 | 显示全部楼层 |阅读模式
我用TouchGFX designer生成了一个仿宋字体的字库,通配符范围是​0x4e00-0x9fa5,0x0000-0x007f,包含常用汉字以及所有的ASCII码。但是有些字符却不能显示比如 下划线'_'   句号'.' 等,如果我要显示动态的文本,不固定,这个文本可能就包含上诉的字符,但却不能显示。大家有好的解决办法吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106826
QQ
发表于 2023-7-31 15:39:07 | 显示全部楼层
模拟器上直接展示'_'   句号'.' 正常吗,注意半角和全角问题了吧
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2023-7-31 16:33:34 | 显示全部楼层

在touchGfx中大家有试过使用中文字库显示吗

本帖最后由 gyh 于 2023-8-1 09:37 编辑
eric2013 发表于 2023-7-31 15:39
模拟器上直接展示'_'   句号'.' 正常吗,注意半角和全角问题了吧

没用模拟器显示,模拟显示会编译失败,是直接下载到板子的。但是我试过不用字库,直接选仿宋字体,在文本框中输入'_'可以正常显示,我在怀疑生成的字库中是不是没有这个字符
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2023-7-31 16:44:12 | 显示全部楼层
eric2013 发表于 2023-7-31 15:39
模拟器上直接展示'_'   句号'.' 正常吗,注意半角和全角问题了吧

逗号',' 冒号':' 问号'?' 这些跟中文有关到时都能显示,所以我怀疑因为选择的是仿宋,所以跟中文无关的ASCII码就不生成了。但是你直接在文本框中输入却能显示,挺奇怪的
回复

使用道具 举报

13

主题

192

回帖

231

积分

高级会员

积分
231
发表于 2023-7-31 16:55:48 | 显示全部楼层
static uint32_t Font_PINGFANGBLACK_MIDBOLD_SIMPLE_20_ADDRESS = 0x61400000;

BinaryFont bf;
uint8_t *fontdata = (uint8_t*)Font_PINGFANGBLACK_MIDBOLD_SIMPLE_20_ADDRESS;
FrontendApplication::FrontendApplication(Model& m, FrontendHeap& heap)
    : FrontendApplicationBase(m, heap)
{
        uint8_t t_nLanguage;
        CUserSetting::GetInstance()->GetLanguage(t_nLanguage);
        new(&bf) BinaryFont((const struct touchgfx::BinaryFontData*)fontdata);
        //语言加载错误,需要加载英语
        if (bf.getFontHeight() == 0xFFFF)
        {
                t_nLanguage = 1;
        }
        else
        {
                TypedTextDatabase::setFont(TypographyFontIndex:INGFANGMEDIUM_20, &bf);
        }
       
        touchgfx::Texts::setLanguage(t_nLanguage);
}

我们是这么用的,需要设置的。
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2023-8-1 09:14:51 | 显示全部楼层
zhang0352505 发表于 2023-7-31 16:55
static uint32_t Font_PINGFANGBLACK_MIDBOLD_SIMPLE_20_ADDRESS = 0x61400000;

BinaryFont bf;

这是在初始化时,选择不同的语言吧。如果我要显示一串字符包含中英文和其它字符,比如读取U盘中的文件名,"说明.txt",像这样的,你们是怎么处理的?
回复

使用道具 举报

13

主题

192

回帖

231

积分

高级会员

积分
231
发表于 2023-8-1 10:45:13 | 显示全部楼层
gyh 发表于 2023-8-1 09:14
这是在初始化时,选择不同的语言吧。如果我要显示一串字符包含中英文和其它字符,比如读取U盘中的文件名 ...

不,Font_PINGFANGBLACK_MIDBOLD_SIMPLE_20_ADDRESS这是存放你要使用的字体的位置,这就是用touchgfx生成的字库,目前好像只能加载一种类型的字体,这个类型的字体在生成的时候指定了你要包含的字,具体的你去看看touchgfx的文档吧,至于切换语言,那是我们自己做的。
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2023-8-1 11:05:08 | 显示全部楼层
zhang0352505 发表于 2023-8-1 10:45
不,Font_PINGFANGBLACK_MIDBOLD_SIMPLE_20_ADDRESS这是存放你要使用的字体的位置,这就是用touchgfx生成 ...

好的,多谢了,看来确实只能加载一种字库,在选择中文字体时,即使包含所有ASCII码,有些字符也是无法生成的。
回复

使用道具 举报

10

主题

40

回帖

70

积分

初级会员

积分
70
发表于 2023-8-1 21:53:29 | 显示全部楼层
楼主,请教一下TouchGFX Designer生成汉字全字库具体的步骤,麻烦了
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2023-8-2 10:55:55 | 显示全部楼层
kmxm 发表于 2023-8-1 21:53
楼主,请教一下TouchGFX Designer生成汉字全字库具体的步骤,麻烦了

你可以参考下这两个博客https://blog.51cto.com/u_14244693/5935770https://blog.csdn.net/chosenOne2/article/details/119752196,里面有纤细步骤
以及这个官方文档https://support.touchgfx.com/4.2 ... /using-binary-fonts
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-6 05:47 , Processed in 0.189223 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表