通过按下按钮我们可以实现不同的控制功能,比如按下房间的开关可以开灯、按下电脑的开机键可以打开电脑、点击手机app的图标可以进入app的首页等等均是通过按钮进行控制。

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

1. 按钮开关功能:实现瞬变、开关、置位、复位、长按的功能

2. 按钮逻辑功能:实现两个按钮的互斥、使用指令实现总开关的功能

3. 单按钮多状态:可以用一个按钮和一个图标实现多状态按钮的功能

4. 自定义指令:按下按钮时对外发送自定义指令


适用范围:只适用分辨率1024*600

按钮控件工程案例下载链接:《按钮控件工程案例》


1.1 属性介绍

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

触摸虚框

用户按下按钮时,显示虚框,如下所示

事件通知

事件通知:按下/弹起按钮是否会发送通知,将设备连接上位机可在指令窗口看到设备发送到主机的通知指令。

图片来源

图片来源分工程图片和外部图片 工程图片指的是项目里的工程画面 外部图片指的是外部导入的图片

弹起时的图片

按钮弹起状态时显示的图片。“裁剪坐标” ,将显示图片中按钮坐标对应的区域的图像 一般来说弹起时的图片可以不设置,因为按钮弹起时的图片一般就是放置按钮的画面。

按下时的图片

按钮按下时显示的图片。“裁剪坐标”,将显示图片中按钮坐标对应的区域的图像

触控用途

> 切换画面

> 开关描述

> 自定义按键

> 自定义指令

> 弹出菜单

如下所示

> 切换画面

切换到指定画面,相关参数配置如下所示:

可选功能有: 目标画面:点击按钮控件时,切换到指定画面

> 开关描述

按钮开关的功能,相关参数配置如下所示: 可选功能有:

初始状态:开关的初始状态。

操作风格:

  • 瞬变:松开后,开关自动弹起,类似轻触开关功能。
  • 开关:按下后,开关由弹起变成按下或由按下变成弹起,类似带锁开关功能。
  • 置位:开关只能由弹起变成按下。
  • 复位:开关只能由按下变成弹起。
  • 长按:与瞬变按钮相似,但按压时每隔100毫秒通知一次。

对内指令:在按下或者弹起后,对内部执行的指令

对外指令:在按下或者弹起后,对外部发送的指令

> 自定义按键

把相应按钮转换成值输入。需要配合自定义键盘输入的文本控件使用,可以将按钮控件设计为自定义键盘,用户需要把按钮控件当做自定义按键

> 自定义指令

发送自定义的16进制格式的数据。即为用户设置按下按钮后,设备上传自定义的数据报文。

> 弹出菜单

需要协同菜单控件和文本控件使用,实现点击按钮即可弹出菜单,用户在选择弹出的菜单后,配合文本控件,把所选数据显示出来

1.2 按钮开关功能应用

【按钮开关功能】画面,介绍按钮的瞬变、开关、置位、复位、长按、功能

画面背景配置

在【按钮开关功能】画面的“背景图片”导入相应的美工图片。在该画面中设置按钮控件

属性配置

1.瞬变

以按钮的瞬变功能为例,设置【触摸虚框】为“否”、【按下时的图片】选择处理好的图片、【触摸用途】为“开关描述”、【操作风格】“瞬变”

同理,其它按钮的【触摸虚框】、【按下时的图片】、【触摸用途】设置相同,但是操作风格设置不同,此文不在赘述

2.开关

设置按钮的开关功能,【操作风格】为“开关”,如下所示

3.置位

设置按钮的置位功能,【操作风格】为“置位”,如下所示

4.复位

设置按钮的复位功能,【初始状态】为“按下”、【操作风格】为“复位”,如下所示

5.长按

设置按钮的长按功能,【操作风格】为“长按”、如下所示

运行预览

运行虚拟串口屏,则在虚拟屏中,该按钮控件从弹起变为按下,运行效果如下所示

lua脚本控制按钮状态

在工程文件中找到脚本文件output->FontAndLib->31_0x1F.lua,代码如下所示。


{
  ……
  set_value(1, 1, 1); //画面ID1,控件ID1,控件值(如是按钮控件: 0-按下  1-弹起)
  ……
}

1.3 按钮逻辑功能应用

【按钮逻辑功能应用】画面,介绍按钮的互斥、和总开关控制功能。

按钮互斥(单选)

画面背景配置

在【按钮开关功能】画面的“背景图片”导入相应的美工图片。在该画面中设置按钮控件,如下所示

属性配置

按钮“开始”:设置【触摸虚框】为“否”、【按下时的图片】选择设置好的图片、【触摸用途】为“开关描述”、【操作风格】“开关”,配置如下所示

同理,按钮“暂停”的【触摸虚框】、【按下时的图片】、【触摸用途】、【操作风格】设置相同,但是【初始状态】设置为“弹起”

互斥配置

互斥按钮的设置方法如下,选择开始按钮 在对内指令中 按下指令和弹起指令添加如下指令,操作如下所示

选择暂停按钮 在对内指令中 按下指令和弹起指令添加如下指令,操作如下所示

运行预览

运行虚拟串口屏,点击按钮“开始”和“暂停”,同一时间只有一个按钮可以处于按下状态。如下所示

按钮开关控制

画面背景配置

在【按钮开关功能】画面的“背景图片”导入相应的美工图片。在该画面中设置按钮控件,如下所示:

属性配置

设置按钮1路、按钮2路、按钮3路,设置【触摸虚框】为“否”、【按下时的图片】选择设置好的图片、【触摸用途】为“开关描述”、【操作风格】“开关”,如下所示

设置按钮OFF,设置【触摸虚框】为“否”、【按下时的图片】选择设置好的图片、【触摸用途】为“开关描述”、【操作风格】“开关”,如下所示

选择按钮控件(控件ID:6)

1.属性栏中的【对内指令】→“弹起时”

2.弹出指令填写框,填写如下指令

3.属性栏中的【对内指令】→“按下时”

4.按下指令填写框,填写如下指令

运行预览

运行虚拟串口屏,则在虚拟屏中,该按钮控件从弹起变为按下,运行效果下所示

lua脚本批量控制按钮状态

在工程文件中找到脚本文件output->FontAndLib->31_0x1F.lua,代码如下所示。


{
  ……
  set_value(1, 1, 1); //画面ID1,控件ID1,控件值(如是按钮控件: 0-按下  1-弹起)
  set_value(1, 1, 1); //画面ID1,控件ID1,控件值(如是按钮控件: 0-按下  1-弹起)
  set_value(1, 1, 1); //画面ID1,控件ID1,控件值(如是按钮控件: 0-按下  1-弹起)
  ……
}

1.4 单按钮多状态应用

【单按钮多状态】画面,介绍使用一个按钮和一个图标实现多状态按钮的功能

画面背景配置

在【单按钮多状态】画面的“背景图片”导入相应的美工图片。在该画面中设置按钮控件,如下所示:

属性配置

设置图标控件的属性,【图标文件】选择制作好的ICON文件,配置如下所示

图标1.icon文件代码如下

<?xml version="1.0" encoding="UTF-8"?>
<cficon>
<file path="播放.png"></file>
<file path="暂停.png"></file>
<file path="停止.png"></file>
</cficon>

选择按钮控件(控件ID:4),属性栏中设置【触摸虚框】为“否”,对按钮按下填写对应的指令,步骤如下所示

【对内指令】→“按下时”,弹出指令填写框

运行预览

运行虚拟串口屏,点击按钮,图标会轮询显示。则在虚拟屏中,按钮显示“播发-暂停-停止”,运行效果如下所示

lua脚本设置图标的显示

在工程文件中找到脚本文件output->FontAndLib->31_0x1F.lua,代码如下所示。


{
  ……
  set_value(1, 1, 1); //画面ID1,控件ID1,控件值(如是按钮控件: 0-按下  1-弹起)

  ……
}

**

1.5 自定义指令应用

【自定义指令】画面,介绍按钮对外发送自定义指令的功能

画面背景配置

在【按钮开关功能】画面的“背景图片”导入相应的美工图片。在该画面中设置一个按钮控件(控件ID:1),如下所示 属性配置

设置按钮(控件ID:1)的属性,设置【触摸虚框】为“否”、【事件通知】为“否”、【按下时的图片】选择设置好的图片、【触控用途】为“自定义指令”、【弹起时】为自定义的16进制指令“33 00”、【按下时】为自定义的16进制指令“33 01”,配置如下所示

运行预览

运行虚拟串口屏,点击自定义按钮发送指令,运行效果如下所示