QT之旅
GUI程序初探
命令行应用程序与图形界面应用程序的区别
命令行应用程序 | 图形界面应用程序 |
---|---|
基于顺序执行结构 | 基于消息驱动模型 |
弱交互执行 | 基于消息驱动模型 |
由用户触发运行 | 由用户触发运行 |
主动结束 | 由用户触发结束 |
GUI程序开发原理
- GUI程序在运行时会创建一个消息队列
- 系统内核将用户操作翻译成对应的程序消息
- 程序在运行过程中需要实时处理队列中的消息
- 当队列中没有消息时,程序将处于停滞状态
不同操作系统支持相同的GUI开发原理
现代操作系统支持GUI界面
- 现代操作系统提供原生SDK支持GUI程序开发
- GUI程序开发是现代操作系统的主流技术
- 不同操作系统上的GUI开发原理相同
- 不同操作系统上的GUI SDK不同
- GUI程序开发包括
- 在代码中用程序创建窗口及窗口元素
- 在消息处理函数中根据消息做出不同响应
GUI程序开发本质
- 在代码中用程序创建窗口及窗口元素
- 在消息处理函数中根据程序消息做出不同响应
GUI程序开发实例
多数操作系统以C函数的方式提供GUI SDK,以Windows为例:
函数名 | 功能 |
---|---|
RegisterClass | 向系统注册GUI窗口式样 |
CreateWindow | 创建窗口或窗口元素 |
ShowWindow | 在屏幕上显示创建好的窗口 |
UpdateWindow | 刷新屏幕上的窗口 |
GemtMessage | 获取程序消息队列中的消息 |
TranslateMessage | 翻译系统消息 |
DispatchMessage | 将消息发送到窗口处理函数 |