update howtowork.md

This commit is contained in:
idea4good 2019-05-14 06:25:53 +08:00
parent 78911840d5
commit 31b87244ff

View File

@ -19,7 +19,9 @@ GuiLite只作两个工作界面元素管理和图形绘制。
图形绘制包括:
- 基本的点线绘制,例如:画点,矩形,横线,竖线等
- 设置绘制图层,如果需要多个图层,在基本点线绘制时,需要给出图层的索引值
- 图层处理,在图层界面发生变化的时候,将其正确的组合,并输出到最终显示终端上
- 图层处理,在图层界面发生变化的时候(例如:打开/关闭对话框)GuiLite将决定各个图层上的像素点哪个会被最终显示在屏幕上
👉注意:图形绘制不依赖界面管理,可以独立的存在,例如,在资源有限的单片机环境,有时候不需要界面元素管理,而直接进行图形,文字的绘制。
## 扩展方法
GuiLite只给出了基本控件例如按钮标签键盘选择框的实现方法旨在说明控件的实现方法。对于扩展控件可以选择下面的方式
@ -38,7 +40,7 @@ widgets:
- 实现了用户的手势识别(例如:手指滑动,鼠标按下/释放的消息传递将用户的输入信息传递到整个GUI体系树中并调用相应的响应回调函数开发者可以根据自己的需要添加/修改响应回调函数。
## 界面元素管理
界面元素管理包括对所有控件buttonspinbox, lable, keyboard容器dialog, view管理具体的管理方法是为所有的界面元素建造一棵树,利用这棵树实现对所有界面元素的遍历,查询,状态更改。
界面元素管理包括对所有控件buttonspinbox, lable, keyboard容器dialog, view管理具体的管理方法是在用户调用connect函数时会把所有的界面元素连接起来从而实现对所有界面元素的遍历/添加/删除等操作。这些链接看起来像一棵树,对界面元素的遍历,就是对这棵树的遍历
比如当你按下一个dialog的button时手指的位置信息xy会被传入树的根部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()函数。