V2.3新增,用于替换原来的 data 的一部分
显示、修改系统数据和KUI自定义变量
#500 或 #500$2,其中$2代表主通道2。"__" ,形如__{v1}。__sp_angle_pos[xxx]$n、当前反馈速率__act_feed_speed$n、程序列表信息__prog_list_info[x]、U盘列表信息__usb_list_info[x]、负载绝对值__axis_torque[n] # D区参数,数据类型为u32
textbox("D12[u32]",(1, 1, 30, 150))
# 宏变量,符号$和@用于区分主通道和辅助通道,@为辅助通道,$为主通道
textbox("#500$2",(41, 1, 30, 150))
# 系统参数,区分位型参数和字节型参数
textbox("P1105.5[1]",(81, 1, 30, 150))
textbox("P610[1][u32]",(121, 1, 30, 150))
# 伺服参数
textbox("PA5[3]",(161, 1, 30, 150))
# KUI自定义变量,控件中命名为{value},脚本中若使用此变量,则写为#value
textbox("{value}",(201, 1, 30, 150))
# 可变变量,根据D10的值选择对应的变量
textbox("select{D10, (1, D11),(2, D12)}",(241, 1, 30, 150))
# 内部变量,通道1的反馈速率
textbox("__goal_count",(281, 1, 30, 150))
注:主轴号或通道号无效时显示数据为0。不支持多通道的系统软件会忽略$n。
" #500 "。(a, b, c, d) 其中a/b/c/d都应该是正整形值分别表示控件的 起始行/起始列/所占行数/所占列数,其中c/d可以省略,省略时值均为1。只读。隐藏,会隐藏控件四周的线框。text_align=居中old_data_align=自动enable="#100",则只有当#100不等于0时才可以修改。(此参数仅在 确认 模式下有用)id="page1" 或 id=1。action=运行脚本("xxx"),括号中的字符串为符合KUI脚本语法的若干语句。当操作者手动改变控件数据值时,将执行这些语句。action=运行脚本文件("xxx.prg"),括号中的字符串为KUI脚本文件名称,文件需放到当前目录下或写入绝对路径。当操作者手动改变控件数据值时,将执行此文件。action=程序段模板('''xxx'''),括号中的字符串为一个程序模板段,当操作者手动改变控件数据值时,将以其为模板生成程序段,插入当前光标之后。程序模板段可以包含任意符合KUI脚本语法的语句和一些会生成程序的模板语句,模板语句中的字符在生成程序时不变,变量则用其值来替代。例如 ’’’ G01 X#500’‘‘在生成程序时(假设#500值为100),会生成程序"G01 X100;"。password=1,此时首次修改此控件数据时,需要输入密码"xxx",否则无法修改。focus_in=表达式("#500=10")focus_out=表达式("#500=0")left="LA"或 left=1,则按系统面板上的"左"按键时,id为"LA”/1 的控件捕获光标。min=1。max=1。(如果同时设置max和mix两个参数,则需要满足条件 “max >= min”,否则报错)(min和max两个参数仅限制从控件改变值时的输入范围,如果控件绑定的是系统变量,如宏变量#500,则当#500的值超出范围时可以正确显示,这两个参数为特定需求的情况设计,无特殊需求勿用,以免造成不必要的困扰)min_length=1。max_length=1。(如果同时设置max_length和mix_length两个参数,则需要满足条件"max_length >= min_length",否则报错)(min_length和max_length两个参数仅限制从控件改变值时输入值的长度范围,如果控件绑定的是系统变量,如宏变量#500,则当#500的值超出长度范围可以正确显示,这两个参数为特定需求的情况设计,无特殊需求勿用,以免造成不必要的困扰)anyof=[12, 13, 14],此时从控件输入数值时必须是12/13/14中的一个,否则报错,操作无法完成。noneof=[12, 13, 14],此时从控件输入数值时不能是12/13/14中的一个,否则报错,操作无法完成。(anyof和noneof两个参数仅限制从控件改变值时输入值的范围,如果控件绑定的是系统变量,如宏变量#500,则当#500的值超出范围可以正确显示,这两个参数为特定需求的情况设计,无特殊需求勿用,以免造成不必要的困扰)format="%xxx" ,是C语言库函数printf的子集,目前仅支持几种简单的格式化,在下面列出。使用此参数时,必须使用data_type参数,且此时参数的格式化需要与data_type类型相对应。格式化时不会改变变量的值,但会改变其显示形式。一些情况可能会导致显示的值与变量真实值不符。(使用此参数时你需要明确知道你在做什么,并且不会给自己和用户带来困扰)。下面是目前支持的格式化形式。
textbox("{v1}", (1, 1, 30, 150), format="%.3f", data_type='float')textbox("{v1}", (1, 1, 30, 150), format="%04d", data_type='int')textbox("{v1}", (1, 1, 30, 150), format="%04d", data_type='int')soft_keyboard=系统键盘visible=0注:参数min/max/min_length/max_length/anyof/noneof/data_type都对数值变量的值进行了不同程度的限制,当输入的值不符合要求时控件会处于一种 未完成的状态,此时需要继续设置值或按"复位"来恢复控件操作前的状态,如果控件处于未完成状态时移动光标,此时控件中的数值会处于控件左侧,显示的值与实际 值不符。
action=表达式("#900=999")、光标移到控件时执行动作focus_in=表达式("#509=#509+1")、光标离开控件时执行动作focus_out=表达式("#509=#509-1")
with page(456, 800, id="page1", text=(白色, f20x10, 居中), bg_color=(24, 24, 24)):
# 简单用法,编辑宏变量、参数、自定义变量、可变变量
textbox("#500", (1, 1, 30, 150))
textbox("P610[1][u32]", (41, 1, 30, 150))
textbox("{value}", (81, 1, 30, 150))
textbox("select{D10, (1, D11),(2, D12)}", (121, 1, 30, 150))
# 字体颜色和字体对齐方式
textbox("#500", (161, 1, 50, 150), 红色, text_align=居中, rect_no_c=1, soft_keyboard=无键盘)
# 边框设置,其中border_sizez仅支持v7.1
textbox("#501", (241, 1, 50, 150), border_visible=1, border_color=红色, border_size=3, rect_no_c=1)
# 背景色和控件圆角设置
textbox("#502", (321, 1, 50, 150), f28x14, 黄色, text_align=居中, border_visible=0, radius=20, bg_color=(145, 145, 145), rect_no_c=1)
# 可变文字颜色和背景颜色
textbox("#503", (401, 1, 50, 150), fg_expr="#504", fg_map={0:白色, 1:绿色}, bg_expr="#504", bg_map={0:深灰色, 1:(85, 85, 85)}, rect_no_c=1)
# #505设置为浮点数,并且显示小数点后三位
textbox("#505", (1, 200, 30, 150), data_type="float", format="%.3f")
# #505设置为正整数,显示四位数字
textbox("#505", (41, 200, 30, 150), data_type="uint", format="%04d")
# #505设置为正整数,显示四位数字
textbox("#506", (81, 200, 30, 150), noneof=[1, 2], min=0)
# #507设置最小和最大长度,并且触发动作
textbox("#507", (121, 200, 30, 150), min_length=1, max_length=5, action=表达式("#900=999"))
# 绑定密码等级,输入密码后修改#508数值
textbox("#508", (161, 200, 30, 150), password=1)
# #509宏变量,光标进入时候执行表达式#509=#509+1,光标离开时执行表达式#509=#509-1
textbox("#509", (201, 200, 30, 150), id="id_509", focus_in=表达式("#509=#509+1"), focus_out=表达式("#509=#509-1"))
# 设置光标移动顺序, left左边控件,right右边控件,prev上一控件,next下一控件
textbox("#510", (241, 200, 30, 150), id="id_510", prev="id_509", next="id_511")
textbox("#511", (281, 200, 30, 150), id="id_511", prev="id_510")
# 使用循环,生成多个输入框
for i in range(10):
textbox(f"#{600+i}", (1+i*40, 400, 30, 150))
menu("第一页", "page1")