图片数值控件 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 用途:显示数值(和数值控件类似)。显示内容可以通过键盘修改、上位机编辑脚本修改或单片机发送指令修改。 与数值控件不同之处 :使用连续的12张数字图来替代字库,方便用户实现显示艺术字。 属性 --------------------------------- .. image:: image/图片数值/图片数值属性.png :align: center :alt: 图片数值属性 | **基础属性 :** 参考控件概念- :ref:`基础属性` **坐标属性 :** 参考控件概念- :ref:`坐标属性` **注意:** 图片数值控件高度自适应图片的高度,修改无效! **背景属性 :** 参考控件概念- :ref:`背景属性` **加载属性 :** 参考控件概念- :ref:`加载属性` **特有属性 :** .. image:: image/图片数值/图片数值特有属性.png :align: center :alt: 图片数值特有属性 | + 起始图片(pic):起始图片id,图片排序(共12张):0-9、小数点、负号(只读) **注意:** 需要保证连续的12张图,高度是一致的(宽度可以不一致)。添加到图片资源如下图所示: .. image:: image/图片数值/图片数值图片窗口.png :align: center :alt: 图片数值图片窗口 | + 数值(val):整数数值,范围: -2147483648至2147483647 INT32_T类型(读写) - 整数位数(il):整数位数,范围:0-11,0表示自动,仅小数位数为0有效(读写) + 小数位数(fl):小数位数,范围:0-8,0表示无小数(读写) - 输入键盘(kb):键盘页面id,范围0-255,255表示无(只读) + 水平对齐方式(alx):水平对齐,0-靠左 1-居中 2-靠右(读写) .. warning:: 1. 图片数值控件显示原理:使用值(val)根据小数位数显示出来。 2. 小数位数不为0,脚本获取到val并不是小数,始终是整数。如:val=1024; fl=2;脚本获取val,不是10.24而是1024。 .. warning:: 输入键盘(kb):文本类控件使用键盘,一定要先创建键盘页面,否则输入键盘属性无法配置。 --------------------------------- 事件 --------------------------------- **弹起事件:** 控件按下且弹起后执行 **按下事件:** 控件按下后执行 **键盘输入结束事件:** 文本类控件使用键盘输入在关闭时执行 --------------------------------- 功能演示 --------------------------------- `点击下载演示工程 `_ .. image:: image/图片数值/图片数值功能演示.png :align: center :alt: 图片数值功能演示 | .. tip:: 把工程配置的启动页面(pid)改为当前页面ID可以立即显示此页面。 | 键盘输入 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. image:: image/图片数值/键盘输入.png :align: center :alt: 键盘输入 | - 功能:点击图片数值控件弹出键盘页面,使用键盘输入。 - 实现原理:首先,在上位机控件栏点击系统键盘创建键盘页面,然后在图片数值控件特有属性->输入键盘属性下拉选择键盘页面。如下图: .. image:: image/图片数值/特有属性.png :align: center :alt: 特有属性 | 详细步骤请参考::ref:`键盘输入` | 限制键盘输入值的范围 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. image:: image/图片数值/输入结束事件.png :align: center :alt: 输入结束事件 | - 功能:键盘输入后,自动限制值的范围。 - 实现原理:图片数值控件的 ``键盘输入结束事件`` 中编写 :: //代码功能:限制imgn0键盘输入后显示值的范围 int max = 20 * 100; //imgn0 属性配置小数为两位,所以乘以100 int min = -20 * 100; if(imgn0.val>= max) { imgn0.val = max; } else if(imgn0.val <= min) { imgn0.val = min; } **说明** :单片机想显示小数,如 float value1 = 123.45。我们只需要转换一下 int value2 = value * 100, (数值控件设置2个小数位乘以100,3个就乘以1000,以此类推),然后发送value2给图片数值控件即可。 | | | | | | | |