Skip to content

Commit

Permalink
更新说明
Browse files Browse the repository at this point in the history
  • Loading branch information
HEYAHONG committed Dec 18, 2024
1 parent c18874e commit abefa7a
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions hbox/gui/ReadMe.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,35 @@

更加复杂的交互(如音视频、动画、字体效果等)应当使用更加成熟的库,如[Qt](https://www.qt.io/)[minigui](https://github.com/VincentWei/MiniGUI.git)[lvgl](https://github.com/lvgl/lvgl.git)[u8g2](https://github.com/olikraus/u8g2.git)

主要目标硬件为以下类型的硬件:

- 单色屏,典型为分辨率为128x64的点阵屏。
- 低分辨率彩屏,典型为分辨率为320x240 的彩屏。

# GUI设计

对于嵌入式GUI设计而言,主要包含以下内容:

- 界面设计
- 事件处理

## 界面设计

界面对象一般可分为:

- 窗口(Window):可分为Frame(窗口框)与Dialog(对话框)。
- 控件(Control/Widget):如按钮、标签、文本框等。

界面对象之间一般采用树状结构,即每个界面对象都应该有一个父对象,通常当父对象为空(NULL)时 通常默认为顶层的界面对象。

对于桌面平台而言,顶层的界面对象一般是窗口(Window),而对于廉价的嵌入式显示方案而言,顶层的界面对象一般是整个屏幕(Screen)。

## 事件处理

对于一个GUI应用而言,一般有一个事件队列(通常运行在单一线程(主线程))。

对于大多数GUI应用(如基于Qt的GUI程序、基于wxWidgets的GUI程序)而言,有且只有一个应用对象(全局唯一),由GUI线程(桌面平台中一般是主线程)执行对该对象中的事件队列的处理,同时,应用对象也包含了其它GUI应用所需的全局唯一信息(若桌面平台上的窗口信息、程序运行参数等)。

# 注意事项

- 本组件不包括实际的硬件驱动,在driver子组件中提供了一系列接口,用户需要根据实际硬件实现相应接口。
Expand Down

0 comments on commit abefa7a

Please sign in to comment.