kivyterminal/ui/kivyblocks/blocks.md

48 lines
1.5 KiB
Markdown
Raw Normal View History

2023-08-13 15:44:52 +08:00
# Blocks
Blocks是kivyblocks的核心类负责将字典类型的数据转化为GUI的Widget。
Blocks也注册到了kivy.factory.Factory中可以使用
```
blocks = Factory.Blocks()
```
初始化实例
## 方法
### widgetBuild(desc)
#### 参数
* desc 1) 字典类型, Widget描述的字典数据
2) 字符串可通过json导入的字符串
#### 返回值
成功返回创建的widget实例
失败返回空
#### 事件
如果创建widget成功触发”on_built"事件,
如果创建widget失败将触发“on_failed”事件
事件处理函数的例子如下:
创建成功:
```
def on_built(o, w):
pass
```
其中o为Blocks实例 w为新建widget的实例
创建失败
```
def on_failed(o,e):
pass
```
其中, o为Blocks实例 e为例外实例
#### 功能描述
此方法按照desc字典数据构建一个Widget首先按照desc['options']中的参数初始化“widgettype”属性指定的类并将“subwidgets”中的子Widget创建并添加到Widget中并且将非“options”“subwidgets“和”binds“的其他属性也创建完成并作为Widget的属性变量最后创建”binds“中的事件处理。
widgetBuild按照执行结果的状态会触发两个事件中的一个如果创建成功会触发"on_built"
### getWidgetById(id, from_widget=None)
查找指定id的widget可以指定从整个widget树上的哪个节点开始查找。
#### 参数
id字符串其中.'用于分割节点id如果id中存在.',那么
## 使用用例