(一)BOX
是TouchGFX中最轻量级的控件之一,因为它不需要读取任何像素数据或进行任何复杂计算。 因此,大部分平台会将方框视为非常快速的控件。特性如下:
(1)一般用来显示背景或者覆盖。
(2)不会产生任何触发。
(3)可拖动 指定在运行时控件是否可拖动。
(4)ClickListener 指定控件被点击时是否会调用回调函数。
(5)FadeAnimator 指定控件是否可绘制其 Alpha 值变化的动画。
(6)MoveAnimator 指定控件是否可绘制 X 和 Y 值变化的动画。
#include <gui_generated/screen1_screen/Screen1ViewBase.hpp>
#include <touchgfx/Color.hpp>
Screen1ViewBase::Screen1ViewBase()
{
boxName.setPosition(260, 133, 294, 99);
boxName.setColor(touchgfx::Color::getColorFromRGB(33, 197, 80));
add(boxName);
}
可在用户代码中使用这些函数以及Box类中提供的其他函数。 如果更改Box的外观,请必须调用 boxName.invalidate() 强制进行重新绘制。
(二)文本视图
TouchGFX Designer 中的 “文本视图” 用于配置项目中的文本、翻译和字体排版。该视图包含两个选项卡:“文本” 和 “字体排版”。
功能概述:“文本视图” 在 TouchGFX Designer 这个工具里,主要负责处理项目中与文本相关的各项设置工作,涵盖了文本内容本身、文本的翻译以及字体排版等方面。
选项卡解析:
“文本Texts” 选项卡:通常在此处对项目中所用到的各种文本内容进行设置。比如,为按钮添加显示文本,为提示信息框设定具体的文字内容等。同时,可能还会涉及到对文本属性的一些基本设置,如文本的 ID、默认值等。
“字体排版Typographies.” 选项卡:此选项卡专注于字体相关的排版设置。可以在这里选择不同的字体样式,设置字体的大小、颜色、加粗、倾斜等效果,以及调整文本的对齐方式、行间距等排版属性,从而使项目中的文本在视觉呈现上更加美观和符合设计需求。
(1)“文本” 选项卡提供了所有文本元素的概览。一个文本元素可以具有自动生成的 ID 或已定义的 ID。
自动生成的 ID:树状图的 “Unsorted” 。当创建某些文本元素时,系统会自动为其分配一个 ID。带有自动生成 ID 的文本通常是一次性使用文本(Single Use texts),它们仅能在一处使用,同一时间不能被多个控件或操作引用。这些文本在被使用时会自动添加到项目中,当对应的控件或操作被删除时,它们也会自动被删除。例如,在设计一个简单的界面时,为某个临时提示信息创建的文本可能就会被赋予自动生成的 ID。
已定义的 ID:树状图的 “Group1” 。开发者可以手动为文本元素定义一个 ID。这种方式赋予了开发者更多的控制权和灵活性。使用已定义 ID 的文本可以被多个控件或操作重复使用,方便在项目中实现文本的复用,提高开发效率。比如,在一个多页面的应用程序中,每个页面的标题可能都使用同一个已定义 ID 的文本,这样在需要修改标题文本时,只需修改一处即可。
带有自动生成 ID 的文本(也称为一次性使用文本)仅使用一次,并且同一时间不能被多个控件或操作使用。当在某个控件或操作上使用这些文本时,它们会被自动添加;而当该控件或操作被删除时,这些文本也会被自动删除。
当自动生成的文本最初被创建时,它们会被添加到一个名为 “Unsorted” 的文本组中。如果这个组不存在,系统会自动创建它。
自动生成的 ID 可以轻松重命名,重命名后该文本就可以在任意数量的控件和操作上使用。
为指定的字体排版选择要使用的字体名称。
你可以从 Windows 系统中所有已安装的字体里进行选择,也可以将自己的字体添加到 assets/fonts 文件夹中。当向该文件夹添加字体后,需要重启 TouchGFX Designer 才能加载这些新字体。
(2)字体排版Typographies
- 备用字符(Fallback Character)
在 TouchGFX 渲染文本时,可能会遇到某些字符的字形(glyph)不存在的情况。这时,备用字符就会发挥作用。用户可以通过以下几种方式指定备用字符:
单个字符:直接输入一个具体的字符,当遇到无法渲染的字符时,就会用这个字符替代显示。
Unicode 值:可以使用十进制或十六进制的 Unicode 值来指定备用字符,比如 0xABCD 这样的十六进制表示,TouchGFX 会根据这个值找到对应的字符进行替代。
特殊关键字’skip’:当指定为’skip’ 时,遇到无法渲染的字符会直接跳过,不进行任何显示。
留空:如果该列留空,可能会有默认的处理方式,例如显示一个空白或者采用其他内置的替代规则。 - 通配符字符(Wildcard Characters)
通配符字符用于指定在 TouchGFX 应用程序中需要能够显示的字符。相比于使用虚拟文本(dummy text),使用通配符字符更具优势。虚拟文本会生成所有字形,但同时也会生成实际的字符串内容;而使用通配符字符,只会生成指定字符的字形,不会生成字符串。例如,在通配符字符列中输入 “0123456789-”,TouchGFX 会为这些字符生成相应的字形,以便在需要显示这些字符时能够正常渲染,但不会把 “0123456789-” 作为一个完整的字符串来处理。 - 控件通配符字符(Widget Wildcard Characters)
某些特定的控件在运行时需要使用通配符字符,这些字符会被自动添加到该字段中。例如数字时钟控件,它需要显示数字 0 - 9、冒号、字母 A 和 P 以及 M 来表示时间(如 12:30 AM),所以会自动在该字段中添加 “0123456789 :APM”。这个字段是只读的,用户不能手动修改其中的内容,因为这些字符是由控件根据自身需求自动添加的。 - 通配符范围(Wildcard Ranges)
通配符范围提供了一种更简洁的方式来指定需要显示的字符集合。它与通配符字符的作用类似,但可以通过指定字符范围来涵盖多个字符。例如,“0 - 9,A - F” 表示需要显示数字 0 到 9 以及字母 A 到 F,这与直接在通配符字符列中输入 “0123456789ABCDEF” 效果是一样的。而且,范围不仅可以用字符表示,还可以用对应的数字来指定。例如,数字 0 - 9 的 ASCII 码范围是 48 - 57,十六进制表示为 0x30 - 0x39,所以 “0 - 9” 也可以写成 “48 - 57” 或 “0x30 - 0x39”。需要注意的是,在输入时不要包含引号。 - 省略号字符(Ellipsis Character)
在文本区域中,如果文本内容过长,可能无法全部显示。这时,省略号字符就会被用来截断长文本,以一种简洁的方式表示文本还有未显示的部分。例如,原本的文本是 “这是一段很长很长的文本内容”,当空间不足时,可能会显示为 “这是一段很长……”,这里的省略号就是由省略号字符指定的。
(3)通配符
(3)TextArea 类
TypedText, TextAreaWithOneWildcard, TextAreaWithTwoWildcards
单引用(Unsorted)预定义方式
资源(Groups)
字体排版(Typographies)
getRootContainer().invalidate();//全屏刷新
//任意中文的显示,大字库的保存位置:
a)存储在内存映射的外部FLSH上,
b)存储在SPI接口的FLASH上,在启动的时候加载到外部扩展的SDRAM上。
(4)图标字体 icon font
是一种字体,单色,可以放大和缩小。和图片不同,图片可以是多色。借助工具“阿里巴巴矢量图标库”