QT之旅

GUI程序初探

命令行应用程序与图形界面应用程序的区别

命令行应用程序 图形界面应用程序
基于顺序执行结构 基于消息驱动模型
弱交互执行 基于消息驱动模型
由用户触发运行 由用户触发运行
主动结束 由用户触发结束

GUI程序开发原理

  • GUI程序在运行时会创建一个消息队列
  • 系统内核将用户操作翻译成对应的程序消息
  • 程序在运行过程中需要实时处理队列中的消息
  • 当队列中没有消息时,程序将处于停滞状态
QT之旅

不同操作系统支持相同的GUI开发原理

QT之旅

现代操作系统支持GUI界面

  • 现代操作系统提供原生SDK支持GUI程序开发
  • GUI程序开发是现代操作系统的主流技术
  • 不同操作系统上的GUI开发原理相同
  • 不同操作系统上的GUI SDK不同
  • GUI程序开发包括
      - 在代码中用程序创建窗口及窗口元素
      - 在消息处理函数中根据消息做出不同响应

GUI程序开发本质

  • 在代码中用程序创建窗口及窗口元素
  • 在消息处理函数中根据程序消息做出不同响应
QT之旅

GUI程序开发实例

多数操作系统以C函数的方式提供GUI SDK,以Windows为例:

函数名 功能
RegisterClass 向系统注册GUI窗口式样
CreateWindow 创建窗口或窗口元素
ShowWindow 在屏幕上显示创建好的窗口
UpdateWindow 刷新屏幕上的窗口
GemtMessage 获取程序消息队列中的消息
TranslateMessage 翻译系统消息
DispatchMessage 将消息发送到窗口处理函数