48 lines
1.5 KiB
Markdown
48 lines
1.5 KiB
Markdown
|
# 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中存在‘.',那么
|
|||
|
## 使用用例
|
|||
|
|