mirror of
https://gitee.com/idea4good/GuiLite.git
synced 2025-01-29 17:22:55 +08:00
update howtowork.md
This commit is contained in:
parent
78911840d5
commit
31b87244ff
@ -19,7 +19,9 @@ GuiLite只作两个工作:界面元素管理和图形绘制。
|
||||
图形绘制包括:
|
||||
- 基本的点线绘制,例如:画点,矩形,横线,竖线等
|
||||
- 设置绘制图层,如果需要多个图层,在基本点线绘制时,需要给出图层的索引值
|
||||
- 图层处理,在图层界面发生变化的时候,将其正确的组合,并输出到最终显示终端上
|
||||
- 图层处理,在图层界面发生变化的时候(例如:打开/关闭对话框),GuiLite将决定各个图层上的像素点,哪个会被最终显示在屏幕上
|
||||
|
||||
👉注意:图形绘制不依赖界面管理,可以独立的存在,例如,在资源有限的单片机环境,有时候不需要界面元素管理,而直接进行图形,文字的绘制。
|
||||
|
||||
## 扩展方法
|
||||
GuiLite只给出了基本控件(例如:按钮,标签,键盘,选择框)的实现方法,旨在说明控件的实现方法。对于扩展控件,可以选择下面的方式:
|
||||
@ -38,7 +40,7 @@ widgets:
|
||||
- 实现了用户的手势识别(例如:手指滑动,鼠标按下/释放)的消息传递,将用户的输入信息传递到整个GUI体系树中,并调用相应的响应回调函数;开发者可以根据自己的需要添加/修改响应回调函数。
|
||||
|
||||
## 界面元素管理
|
||||
界面元素管理包括:对所有控件(button,spinbox, lable, keyboard),容器(dialog, view)管理;具体的管理方法是为所有的界面元素建造一棵树,利用这棵树实现对所有界面元素的遍历,查询,状态更改。
|
||||
界面元素管理包括:对所有控件(button,spinbox, lable, keyboard),容器(dialog, view)管理;具体的管理方法是在用户调用connect函数时,会把所有的界面元素连接起来,从而实现对所有界面元素的遍历/添加/删除等操作。这些链接看起来像一棵树,对界面元素的遍历,就是对这棵树的遍历
|
||||
|
||||
比如:当你按下一个dialog的button时,手指的位置信息(x,y)会被传入树的根部(root),然后从root开始寻找,哪个dialog被点中,dialog的哪个button被点中,并调用buton被点中的回调函数,用于作相应处理(一般会进行button的状态修改及重绘工作)
|
||||
|
||||
@ -51,7 +53,9 @@ widgets:
|
||||
当需要删掉该界面元素时,使用disconnect();从此该界面元素会断绝所有的父子关系,从树上摘下来,不再响应用户的触控操作;但对象本身不会被销毁。典型应用场景:软键盘的创建/退出。
|
||||
|
||||
## 图形绘制
|
||||
图形绘制包括: 绘制方法和图层管理。其中点绘制是线/面/位图绘制的基础,若干个点的绘制,形成点面及位图;图层管理,则是管理多个界面元素的遮挡关系,系统默认支持3层遮挡关系,这3个层次可以为:视图背景层,对话框层,keyboard/spinbox控件层。
|
||||
图形绘制包括: 绘制方法和图层管理。
|
||||
- 点绘制是线/面/位图绘制的基础,若干个点的绘制,形成点面及位图
|
||||
- 图层管理,则是管理多个界面元素的遮挡关系,系统默认支持3层遮挡关系,这3个层次可以为:视图背景层,对话框层,keyboard/spinbox控件层。
|
||||
|
||||
### 绘制方法
|
||||
请参看文件bitmap.cpp和surface.cpp中的draw_xxx()函数。
|
||||
|
Loading…
x
Reference in New Issue
Block a user