V2.3新增,用于替换原来的 data 的一部分
显示下拉文本框
"__"
,形如__{v1}
。" #500 "
。(a, b, c, d)
其中a/b/c/d都应该是正整形值分别表示控件的 起始行/起始列/所占行数/所占列数,其中c/d可以省略,省略时值均为1。border_visible=1,border_color=边框颜色
,其中border_visible=1
可省略**(V3.0起支持)**隐藏
,会隐藏控件四周的线框。enable="#100"
,则只有当#100不等于0时才可以修改。当#100为0时此控件与infolabel相似。(可以省略,不设时可以修改 )id="page1"
或 id=1
。choices={54: "这是G54",55: "这是G55"}
,大括号中每一个被逗号分隔的单元都应该是一个"键–值对",冒号前面的为"键",后面的为"值",大括号中可以包含若干个"键–值对"。控件显示一个下拉文本框,文本框包含大括号里面所有的"值",选择某个"值"会将相对应的"键"的值赋给数据,若参数action有效会同时响应相关动作。数据和大括号里面的所有"键"值都不相等时文本框显示"无效"两个字。choices="fileName.json"
,当文件"fileName.json"在当前工作目录下时可以直接写文件名,不在当前工作目录下时需要写绝对路径。文件格式见本页json文件格式说明(V2.3起支持)action=运行脚本("xxx")
,括号中的字符串为符合KUI脚本语法的若干语句。当操作者手动改变控件数据值时,将执行这些语句。action=运行脚本文件("xxx.prg")
,括号中的字符串为KUI脚本文件名称,文件需放到当前目录下或写入绝对路径。当操作者手动改变控件数据值时,将执行此文件。action=运行MDI
,在下拉文本框中选择相应"值"时会在MDI模式下执行"值"字符串,如果不符合语法将报错。action=程序段模板('''xxx''')
,括号中的字符串为一个程序模板段,当操作者手动改变控件数据值时,将以其为模板生成程序段,插入当前光标之后。程序模板段可以包含任意符合KUI脚本语法的语句和一些会生成程序的模板语句,模板语句中的字符在生成程序时不变,变量则用其值来替代。例如 ''' G01 X#500'‘‘在生成程序时(假设#500值为100),会生成程序"G01 X100;"。left="LA"
或 left=1
,则按系统面板上的"左"按键时,id为"LA”/1 的控件捕获光标。(可以省略)direction=向上
,此时文本框会向上弹出。(V2.7开始支持)visible=0
(v3.3新增)[ ]
,表示内部对象为一个数组。[ ]
内部含有若干个包含在{ }
中的对象,每个对象中的键"text"对应的值为此层文本框显示的字符串。每个{ }
中除了键"text"外还可以含有键"choices"或"value",若含有"value"键则表示此对象没有下一级下拉框;若含有键"choices"则表示此对象有下一级下拉框。“value"键对应的值为变量的值,当变量的值与此值相等时显示"text"对应的值;当手动选择此"text"对应的值时将"value"键对应的值赋给变量。“choices"键对应的值为一个[ ]
包含的数组,此数组与最外层的数组相似。[
{
"text": "吉林省",
"choices": [
{
"text": "长春",
"choices":[
{
"text": "南关区",
"value": 1
},
{
"text" : "朝阳区",
"value": 2
}
]
},
{
"text": "吉林",
"value": 3
}
]
},
{
"text": "辽宁省",
"choices": [
{
"text": "沈阳",
"value": 4
},
{
"text": "大连",
"value": 5
}
]
},
{
"text": "北京",
"value": 10
}
]
此控件用于显示下拉文本框,可以根据绑定变量的值自动显示对应的字符串,也可以选择字符串将相应的值赋给绑定的变量,action参数可以设定在下拉文本框中选择任意一行文本,并按系统的"输入"按键时执行的KUI脚本。例如,根据宏变量#4005的值来显示此时的工作坐标系。可以用此控件显示一个下拉文本框,选择下拉框中的"值"时会将其对应的"键"值赋给指定的变量。
with page(510, 792, id="combobox", text=(红色, f24x12), data=(黄色, f24x16)):
label("绝对坐标", (50, 20, 23, 100), 绿色, f24x12)
combobox("#4005", (50, 125, 40, 80), 绿色, f24x12, 左对齐, 隐藏, choices={54: "G54", 55: "G55", 56: "G56",57: "G57"}) # 此处可以手动选择坐标系,并将相应的值赋给#4005
label("X", (90, 78, 20, 20), 居中, f24x12)
coor("X", (90, 100, 20, 110), 右对齐, 绝对, 青色, f24x12)
label("Y", (125, 78, 20, 20), 居中, f24x12)
coor("Y", (125, 100, 20, 110), 右对齐, 绝对, 青色, f24x12)
label("Z", (160, 78, 20, 20), 居中, f24x12)
coor("Z", (160, 100, 20, 110), 右对齐, 绝对, 青色, f24x12)
combobox("#503", (300, 400, 90, 150), 浅灰色, f24x12, choices="Map.json") #此处的Map.json为上面Json格式说明是举的例子
combobox("D11[u8]", (130, 150, 30,250), choices={1:" 前景色_绿",2:"前景色_蓝", 3:" 查看前景色"}, border_visible=1,border_color=青色)