一、需求分析
aardio的 winform.bindConfig() 函数,绑定后,一个组件,只能保存一个属性。
有时候需要同时保存多个属性,比如一个comobox组件,需要保存项目列表,同时保存当前选中的项目索引。当前这个bindConfig() 函数是无法实现的。
所以,有这个需求,就进行了相应的函数升级。
函数升级后,可以支持一个组件绑定多个属性,同时绑定多个子组件,子组件也支持多个属性,但不再支持子子组件。
该函数封装为 godking 库中的 bindConfig() 函数。使用方法为:
import godking ;
godking.bindConfig ( ) ;
请到 http://chengxu.online → aardio资源下载 → 下载godking库(_.rar)
二、效果如下:
三、函数使用说明
代码用法:
import godking;
godking.bindConfig(winform,"C:\Users\Administrator\Desktop\config\",{
combobox = {"items","selIndex"};
plus = {"left","top",edit={"left","width","text"},"checked"};
trackbar = "pos";
} );
参数1:要保存的窗口对象。该窗口名,也将设为保存的配置文件名。参数2:保存到的目标目录。
参数3:要保存的属性配置列表。
要保存的属性配置列表,表中成员格式为:
- 组件名或组件类型 = 属性名; // 保存或读入单个属性名(同下)
- 组件名或组件类型 = { 属性名 }; // 保存或读入单个属性名(同上)
- 组件名或组件类型 = { 属性名1,属性名2,属性名3,… ,子组件名或类型={ 属性名1,属性名2,属性名3} }; // 按顺序保存或读入多个属性
注意:
1、最终保存到文件中的key,是组件名称,而不是组件类型。
2、子组件也是可以定义多个的。
3、组件属性读写顺序的重要性:比如combobox组件,先读写items,再读写selIndex,因为只有读入项目items后,才能保证正确的选择项目索引selIndex。
四、测试代码
-
import win.ui;
-
/*DSG{{*/
-
var winform = win.form(text=
"aardio form";right=
479;bottom=
279)
-
winform.add(
-
button={cls=
"button";text=
"添加项目";left=
330;top=
100;right=
410;bottom=
130;z=
3};
-
checkbox1={cls=
"checkbox";text=
"Checkbox1";left=
120;top=
60;right=
200;bottom=
80;z=
4};
-
checkbox2={cls=
"checkbox";text=
"Checkbox2";left=
210;top=
60;right=
290;bottom=
80;z=
5};
-
combobox={cls=
"combobox";left=
120;top=
100;right=
320;bottom=
126;edge=
1;items={
'"123"';
'"456"';
'"789"'};mode=
"dropdown";z=
1};
-
trackbar={cls=
"trackbar";left=
110;top=
140;right=
380;bottom=
170;max=
100;min=
0;z=
2}
-
)
-
/*}}*/
-
-
import godking
-
godking.bindConfig( winform,
"d:\", {
-
checkbox = "checked
";
-
combobox = { "items
", "selIndex
" };
-
trackbar = "pos
",
-
checkbox = "checked
",
-
});
-
-
winform.button.oncommand = function(id,event){
-
winform.combobox.add("哈哈哈哈
")
-
}
-
-
winform.show();
-
win.loopMessage();
转载:https://blog.csdn.net/sdlgq/article/details/128694551