Text控件How to use?

freefree技术Resources

这篇内容可直接阅读,适合用于基础学习和Search引流。

Text控件How to use?缩略图
🌐 This page is not yet available in English. Showing the Chinese version. Back to Chinese page.
本文目录
  1. 1. 什么是Text控件?
  2. 2. 2.1 Text控件属性
  3. 3. 2.2 Text控件更新应用
  4. 4. 2.3 Text控件键盘输入应用
  5. 5. 2.4 艺术字显示应用
  6. 6. 2.5 Text增量调节应用

什么是Text控件?

Text控件How to use?插图

字符、numerical value等变量可以通过Text控件来显示。可以由用户主机输入(用户单片机控制),也可以通过设置弹出system键盘或者Customization键盘,对Text控件输入EditOperation

本章节介绍Text控件属性、常见应用,结合工程中的画面介绍每一个应用的配置,常见的应用如下所示

  1. Text控件更新:实现字符串、小数、正/负数的显示
  2. Text控件输入:点击Text框,弹出小键盘、全键盘输入
  3. 艺术字显示:使用艺术字显示字体效果
  4. Text增量调节:通过button控件控制Text小数、整数增量调节

2.1 Text控件属性

本章节重点介绍Text控件的属性,属性窗口如下所示

Text控件How to use?插图1

Text

用户初始状态显示的内容

字体

选择Text显示的字体大小和样式

  • HMI支持的字库Coding:ASCII、GB2312、GBK、UNICODE
  • ASCII:英文字母、数字、符号等、无汉字
  • GB2312:简体汉字、无繁体、无ASCII字符
  • GBK:简体汉字与繁体汉字、ASIIC、日韩文等
  • UNICODE:支持多种国际语言、如法语、俄语、波斯语等
1.F/M/H系列、物联型平台

该平台所生成的字库均是矢量字库,字体的实际尺寸可以任意缩放而不失真。最大支持32个字体样式,若用户选择如下的“ASC_CHS_24”默认字体样式,则ASC表示ASCII字库,CHS表示GBK2312字库,24表示显示字体高度占24个像素。

Text控件How to use?插图2

system有提供常见的字体样式,用户还可以Customization字库。在VisualTFT软件的菜单栏, F/M系列、物联型平台上,选择【Tools】→“字库配置”,如下所示,详细参考《工程笔记-如何Customization矢量字库》Document

Text控件How to use?插图3
2.基本型平台

VisualTFT自带的字体样式,如下所示。ASCII 612表示仅显示英文字母、数字、符号,且字体大小为612个像素,ASCII样式属于半宽format;GBK2312,表示仅显示简体汉字,且字体大小为32*32个像素,GBK2312样式属于半宽format;GBK1212表示显示简体汉字与繁体汉字、ASIIC、日韩文,字体大小为1212个像素,GBK属于半宽format

Text控件How to use?插图4

在基本型平台中,除了system提供的字体样式,用户还可以Customization字库。在VisualTFT软件的菜单栏,选择【Tools】→“字库生成”,根据需求配置参数即可,如下所示

Text控件How to use?插图5

艺术字

用于实现Customization或特殊字体的显示

  • 图标文件:插入艺术字的icon文件
  • 小数点宽度:小数点宽度比例
Text控件How to use?插图6

前景颜色

设置字体的颜色,如下所示

Text控件How to use?插图7

HMI运行时,还可以通过指令修改,详细指令可查阅指令Assistant或《HMI指令集V5.0 .pdf》Document

背景Type

Text控件背景Type可以选择透明、单色、图片、单色(选中时显示),如下所示

Text控件How to use?插图8

1.透明:将Text控件背景透明化。

2.单色:只有一种颜色构成的背景,也称为“纯色背景”。

3.图片:给Text控件的背景插入图片,如下所示

Text控件How to use?插图9

4.单色(选中时显示):点击Text控件,弹出键盘,该控件背景色如透明显示为单色背景。该Function实现,必须设置【输入方式】为“弹出system键盘输入(用户主机可输入)”。如设置【背景颜色】为绿色,如下所示。

Text控件How to use?插图10

密码显示

Open后输入Text将以显示,例如Text为“0.9”,将显示“*”,如下所示

Text控件How to use?插图11

输入边框:

Open后,Text控件输入时,显示边框

水平对齐/垂直对齐

设置文字的对齐方式

输入方式

分为“用户主机输入”、“弹出system键盘输入”、“Customization按键输入”、“system变量”。如下所示

Text控件How to use?插图12
用户主机输入

Text由用户的主机输入,通过串口把指令传到HMI,把data显示到屏幕。如下所示

Text控件How to use?插图13
弹出system键盘输入(用户主机可输入)

弹出system键盘进行Text输入,键盘Type可选择小键盘和全键盘

  • 键盘Type小键盘可以输入数字,如下所示Text控件How to use?插图14全键盘可以输入数字、英文大/小写的字母、中文,如下所示Text控件How to use?插图15
  • 提示信息当用户点击Text框,弹出键盘的输入框里的提示信息,如填入:请输入密码,如下所示Text控件How to use?插图14
  • 键盘位置触摸Text框弹出,键盘的位置,分为自动和指定,指定模式下,如下所示Text控件How to use?插图16
  • 初始值弹出键盘时,在键盘的输入显示栏是否显示当前Text值
  • TextLength最大键盘输入为255byte
  • numerical value限定弹出键盘时,限制键盘输入的阈值,如下所示
Text控件How to use?插图17
Customization按键输入

Text由用户结合button控件的Customization输入,如下所示。若用户修改键盘样式,可参考《【HMI】如何Customization键盘V_1.0》Document。

Text控件How to use?插图18
system变量

可以用于显示HMI的固件版本号、通信Baud rate等等,如下所示

Text控件How to use?插图19

TextLength

Text输入的Length,最大为255个byte。

2.2 Text控件更新应用

【Text控件更新】画面,介绍用户设备和HMI通讯时,用户设备向HMIsend指令,更新Text控件的内容

画面配置

在【Text控件更新】画面的“背景图片”导入相应的美工图片。在该画面中添加Text控件,如下所示:

Text控件How to use?插图20

属性配置

以字符串显示栏为例,设置【Text】为“广州大彩”、【字体】为“ASC_CHS_24”、【垂直对齐】为“垂直居中”、【输入方式】“用户主机输入”,配置如下所示

同理,对小数显示栏、负数显示栏、整数显示栏,设置【Text】初始值依次为“0.8”、“-8”、“18”。

Text控件How to use?插图21

运行预览

运行虚拟屏,VisualTFT软件和虚拟屏用“虚拟串口”建立联机。打开【指令Assistant】,选择左侧导航栏【Text控件1】,设置“更新Text控件”的指令参数。

字符串显示

对画面(画面ID:0)中的Text控件(控件ID:1)填写【Text】为“运行预览”,点击“send”。则在虚拟屏中,该Text控件从默认的“跳动符号”显示为“运行预览”,运行效果如下所示

Text控件How to use?插图22
小数显示

对画面(画面ID:0)中的Text控件(控件ID:2)填写【Text】为“0.9”,点击“send”,运行效果如下所示

Text控件How to use?插图23
负数显示

对画面(画面ID:0)中的Text控件(控件ID:3)填写【Text】为“-9”,点击“send”,运行效果如下所示

Text控件How to use?插图24
整数显示

对画面(画面ID:0)中的Text控件(控件ID:4)填写Text【Text】为“19”,点击“send”,运行效果如下所示

Text控件How to use?插图25

外部MCU控制

参考开发包keil程序中的him.dever.h文件函数声明以及him.dever.c文件中的定义

MUC控制Text字符串显示

例如用户需实现“字符串栏显示栏”显示“运行预览”,则直接调用Text字库串显示函数SetTextValue( )即可,代码如下所示

/************************************************************************

** Function name:    void SetTextValue(uint16 screen_id,
                                       uint16 control_id,
                                       uchar *str);
** Descriptions:    设置Text字符串显示
** input parameters:  screen_id: 画面ID
**                   control_id: 控件ID
**                          str: 显示的字符
** output parameters           : 无
** Returned value              : 无
************************************************************************/
{
    ……
    SetTextValue(0, 1, “运行预览”) //画面ID0,控件ID1,显示字符串“运行预览”
    ……
}
MUC控制显示正整数、负整数

例如用户需实现“负数显示栏”显示“-9”,“正数显示栏”显示“19”,则直接调用Text字库串显示函数SetTextInt32( )即可,代码如下所示

/************************************************************************

** Function name:    void SetTextInt32(uint16 screen_id,
                                       uint16 control_id,
                                       uint32 value,
                                       uint8 sign,
                                       uint8 fill_zero);
** Descriptions    : 设置Text为正/负整数
** input parameters: screen_id:  画面ID
**                   control_id:  控件ID
**                   value:  显示的整数
**                   sign:  0-无符号,1-有符号
**                  fill_zero:  数字位数,不足时左侧补零
** output parameters: 无
** Returned value   : 无
************************************************************************/
{
    ……
    SetTextInt32 (0, 3, -9,1, 0) //设置画面ID0控件ID3,显示-9
    SetTextInt32 (0, 4, 19, 0, 0) //设置画面ID0控件ID4,显示19
    ……
}
MUC控制显示小数

例如用户需实现“小数显示栏”显示“-0.9”,则直接调用Text字库串显示函数SetTextFloat ( )即可,代码如下所示

/************************************************************************
** Function name:    void SetTextFloat(uint16 screen_id,
                                       uint16 control_id,
                                       float value,
                                       uint8 precision,
                                       uint8 show_zeros);
** Descriptions    : 设置Text单精度浮点值/小数
** input parameters: screen_id:  画面ID
**                  control_id:  控件ID
**                       value:  显示的浮点数
**                   precision: decimal places
**                  show _zero: 为1时,显示末尾0
** output parameters:  无
** Returned value   :   无
************************************************************************/
{
    ……
    SetTextFloat (0, 3, 0.9,1,1) //设置画面ID0控件ID2,显示0.9
    ……
}

2.3 Text控件键盘输入应用

【Text控件输入】画面,介绍点击HMI的Text控件弹出键盘,Input data,主动下发data给用户单片机

画面配置

在【Text控件输入】画面的“背景图片”导入相应的美工图片。在画面中添加2个Text控件(控件ID:1和2),如下所示

Text控件How to use?插图26

属性配置

以控件ID为1为例,设置【Text】为“18.8”、【字体】为“ASC_CHS_24”、【垂直对齐】为“居中对齐”、【输入方式】为“弹出system键盘输入(用户主机可输入)”、【键盘Type】为“小键盘”、【键盘位置】为“指定”、坐标为“(300,220)”,【numerical value限定】为“是”,限制范围为“0-100”,配置如下所示

Text控件How to use?插图27

同理,全键盘输入的配置只需将“键盘Type”改为“全键盘”即可,其他参数根据需求配置。

运行预览

运行虚拟屏,点击画面(画面ID:1)中的Text控件(控件ID:1),弹出键盘,输入“66”,回车。则虚拟屏下发对应的指令,运行效果如下所示

Text控件How to use?插图28

2.4 艺术字显示应用

【艺术字显示】画面,使用艺术字显示效果,首先生成对应的ICON文件,在Text控件的属性栏窗口,将ICON文件添加到“图标文件”配置选项中

画面配置

在【艺术字显示】画面的“背景图片”导入相应的美工图片。画面中添加1个Text控件(控件ID:1)

艺术字生成

图标文件制作有两种方式

  1. 图标生成
  2. 艺术字生成
图标生成
  1. 打开图标生成界面在VisualTFT软件菜单栏,选择【Tools】→“图标生成”,如下所示Text控件How to use?插图29
  2. 图标制作点击【增加帧】,将准备好的素材严格按照“[0-9]、[: . * – + ? /]、[A-Z]和[a-z]”顺序添加,否则会导致显示Error。用户导入图片默认为原始的宽和高显示,也可以对宽度和高度的微调及任意拖动进行位置调整,最后点击“生成图标”。Operation如下所示:Text控件How to use?插图30
艺术字生成
  1. 打开艺术字生成界面在VisualTFT软件菜单栏,选择【Tools】→“图标生成”,如下所示Text控件How to use?插图31
  2. 艺术字制作
  3. 设置图标的大小:高度和宽度为128*64
  4. 字体名称:根据显示效果,选择相应TFT字库文件,可网上Download获得
  5. 字体大小:默认显示的字体大小
  6. 字体颜色:设置字体显示的颜色
  7. 字符集合:共3种,如下所示1)数字:数字0~92)数字和符号:数字0~9、字符[:.*-+?/]。3)数字/符号/字母:数字0~9、字符[:.*-+?/]、大写A~Z,小写a~z
  8. 渐变处理:禁止渐变、填充背景色、ALPHA通道
  9. 背景颜色:显示字体默认的背景色

设置如下所示。点击【生成图标】Complete图标生成

Text控件How to use?插图32

属性配置

设置【艺术字】为“是”、【图标文件】插入“艺术字.icon文件”、【小数点宽度】“为50%”、【垂直对齐】为“居中对齐”、【输入方式】为“用户主机输入”,配置如下所示

Text控件How to use?插图33

运行预览

运行虚拟屏,VisualTFT软件和虚拟屏用“虚拟串口”建立联机。打开【指令Assistant】,选择左侧导航栏【Text控1】,设置“更新Text控件”指令参数。如例程中,控制画面(画面ID:2)中的Text控件(控件ID:1),填写【Text】为“123”,点击“send”。则虚拟屏Text控件1显示从默认的“18.8”显示为“123”,运行效果如下所示

Text控件How to use?插图34

2.5 Text增量调节应用

通过button控件控制Text控件显示值“自增”或“自减”Operation。若调节的步长为整数,则增量调节的Operation在屏内即可实现;若调节的步长为小数、字符串(time)等,则需要MCUdata交互实现,或LUA脚本实现(本处不做说明)

整数调节

画面配置

在【Text增量调节】画面的“背景图片”导入相应的美工图片。画面中添加1个Text控件(控件ID:3),2个button控件(控件ID:1和2),如下所示

属性配置
  1. Text控件属性控件ID为3的Text控件,设置Text为“0”、字体为“ASC_CHS_24”、垂直对齐为“垂直居中”、输入方式“用户主机输入”,配置如下所示Text控件How to use?插图35
  2. button控件属性1).填写button增量调节对内指令:选择button控件(控件ID:1)2).属性栏中的【对内指令】→“button按下”3).弹出指令填写框4).选择“指令Assistant”,在指令Assistant界面,左侧导航栏选择【Text控件2】,设置“增量调节”区域的指令参数。如例程中,控制画面ID3中的Text控件ID在0-100范围内以步长为1的单位递减5).填写指令到对应buttonText控件How to use?插图36同理,递增的Operation修改【调节方式】为“递增”即可。注意:该对内指令增量调节的方法仅适合调节的步长为整数,不支持小数
运行预览

运行虚拟屏,点击画面(画面ID:3)中的button控件(控件ID:1或2),以1的步长调整Text控件的numerical value,运行效果如下所示。参考开发包keil程序中的him.dever.h文件函数声明以及him.dever.c文件中的定义

Text控件How to use?插图37

小数调节

画面配置

在【Text增量调节】画面中画面中添加1个Text控件(控件ID:6),2个button控件(控件ID:4和5)

属性配置

控件ID为6的Text控件,设置Text为“0”、字体为“ASC_CHS_24”、垂直对齐为“居中对齐”、输入方式“用户主机输入”,配置如下所示

Text控件How to use?插图38
实现方法

支持LUA脚本的M/F/W系列可以在脚本处理,本章节不做说明,主要阐述通用方法,用户单片机交互实现

  • 按下递增button(控件ID:5)时,屏幕下发button控件的指令到单片机。
  • 单片机Parsebutton控件指令后,若判断是button控件(控件ID:5)按下,则send获取Text控件(控件ID:6)的指令,获取Text控件值。Related代码如下所示/********************************************************************** ** Function name: NotifyButton(uint16 screen_id, uint16 control_id, uint8 state) ** Descriptions : 当button状态改变(或调用GetControlValue)时,执行此函数 ** input parameters: screen_id: 画面ID ** control_id: 控件ID ** state: button控件的状态,0弹起、1按下、2长按 ** output parameters: 无 ** Returned value : 无 **********************************************************************/ void NotifyButton(uint16 screen_id, uint16 control_id, uint8 state) { …… //按下画面ID3控件ID5的button控件 if(screen_id == 3 && control_id == 5 && state == 1) { /******************************************************************* ** Function name: GetControlValue(uint16 screen_id, uint16 control_id) ** Descriptions : 获取控件值 ** input parameters: screen_id : 画面ID ** control_id: 控件ID ** output parameters: 无 ** Returned value : 无 *******************************************************************/ GetControlValue(3,6); //获取画面ID3,控件ID6的Text控件值 } …… }Copy

获取的Text控件值默认是字符串,调用C库函数的sscanf函数,将字符串转成单精度浮点数(小数),进行0.1个单位递增运算,将Text控件值更新到HMI显示。代码如下所示

void NotifyText(uint16 screen_id, uint16 control_id, uint8 *str)
{
    float TestValue = 0.0; 
    ……
    if(screen_id == 3 && control_id == 6)  //画面ID2:Text设置和显示
    {                                      
        sscanf(str,"%%.1f",&TestValue);  //把字符串转换为浮点数
        TestValue += 0.1;  // Text值自增
        /*********************************************
        ** Function name:    void SetTextFloat(uint16 screen_id,
                                               uint16 control_id,
                                                float value,
                                                uint8 precision,
                                                uint8 show_zeros);
        ** Descriptions:    设置Text单精度浮点值/小数
        ** input parameters:  screen_id:  画面ID
        **             control_id:  控件ID
        **             value:  显示的浮点数
        **             precision:  decimal places
        **             show _zero:  为1时,显示末尾0
        ** output parameters:  无
        ** Returned value:   无
        *****************************************************************/
        SetTextFloat(3,6,TestValue,1,1);//设置画面ID3、控件ID6每次自增的numerical value 
    }
    ……
}

time调节

time的增量调节,用户可参考小数增量的方法,结合用户主机Completedata交互,用户主机只要对应调用字符串处理函数实现即可

[wshop_downloads]

技术术语(共 2 个)—— 点击展开
Baud rate串行通信每秒传输符号数,Modbus RTU常用9600/19200
串口计算机与外部设备进行串行通信的物理接口
来源/Tools信息 —— 点击展开
来源 Modbus Chinese Network(modbus.cn) —— China leadingModbus通信协议技术社区 Category Basic Control Document / 触控屏开发Document 字数 7771 字 · 阅读约 20 分钟 更新 2026-07-01 永久链接 https://www.modbus.cn/6858.html
Recommended Tool: Modbus Debug Assistant WeChat Mini Program
Modbus Chinese Network官方推出的Modbus DebuggingTools,支持 Modbus RTU/TCP 实时通信debug、register读写、线圈控制、data监控和message分析。 无需安装,微信Search「Modbus DebuggingAssistant」即可使用。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
把这篇Resources用于真实项目?

进入Tools中心进行messageParse、CRC verification和设备debug,或Submit requirements获取选型与接入建议。

工程师member

把这篇文章变成可执行的debugResources

开通后可使用高级messageParse、Resources包Download、Code Example、工程案例和优先Technical Support,适合真实项目交付。

高级Tools不限次
Resources包与代码包
Complete Engineering Case Library
优先Technical Support入口

发表回复

您的邮箱address不会被公开。 必填项已用 * 标注