美文网首页TouchGFXSTM32TouchGFX
TouchGFX基础:显示中文

TouchGFX基础:显示中文

作者: 海东青电子 | 来源:发表于2019-03-26 00:08 被阅读0次

    使用 TouchGFX Designer 的textArea控件很容易显示不同字体的文字,可是如果想显示中文,则需要做相应的配置,否则会出乱码,见下面这个例子:

    图一

    如上图,添加一个textArea控件, 输入一串文字:“你好 TouchGFX”,在Designer中中文是可以正常显示的。

    图二

    同时,特意将40号大小的Large字体的 Fallback Character 属性由默认的 ? 改为 * 号(后面会看到它的作用),Ctrl+S 保存工程,然后 Browse Code,在VC环境中编译、运行,结果如下:

    图三

    “你好”2个中文字没有显示出来呀?!对应的,显示了2个 * 号(这正是图二中配置的)!难道是VC模拟器的问题?用IAR重新编译、烧写到 STM32F769I-DISCO 开发板中(如何在IAR中正确烧写片外flash,见上一篇文章),结果也是乱码:

    图四

    原因在哪里?

    回到Designer中,这里要重点说说 Typography 这个概念,网络上一般翻译为 “字体排印” ,我称之为 “字体类”,它包含了一种字体的名称、大小、色深、通配符等属性,TouchGFX中显示的任何文字,不论英文还是中文,必定属于某一种字体。只是,Designer默认的任一 字体类 的字体是 Verdana ,这是一种西文字体,是不支持中文显示的,所以造成乱码:

    图五

    图五中,字体类Large 的 Font 是 Verdana,只能显示西文(但Designer的界面上能显示 “你好” 这2个中文字,呵呵了)。为了显示中文,就得设定中文字体 ---- 创建一个字体类,并且将它的 Font 设置为一种中文字体。在图五中,点击绿色框框中的 ADD NEW TYPOGRAPHY 按钮,弹出一个创建字体类的窗口:

    图六

    为新字体类取个名字:Typography_cn,在 Font 下拉列表中,选择 YouYuan,即 幼圆字体 (当前的Designer 4.10版本界面貌似不支持中文,呵呵了)即可:

    图七

    在textArea控件中重新设置Typography:

    图八

    保存工程,再次启动VC、运行模拟器,中文显示正常了:

    图九

    这是下载到目标板运行的情况:

    图十

    TouchGFX是支持多语言界面的(multi language interfaces),即界面可以在多个语言之间切换,需要创建新的 Resource :

    图十一

    如何实现多语言支持,将来另文介绍,本文完。

    补记:有关中文字体的扩充内容,请见文章:《TouchGFX基础:再谈中文显示》。

    相关文章

      网友评论

        本文标题:TouchGFX基础:显示中文

        本文链接:https://www.haomeiwen.com/subject/drpivqtx.html