QT 的窗体系统可以包含多个进程,对于Linux 上的应用,一个
进程可以对应一个应用程序,每个应用程序都有自己的MainWindow,
也可以有自己的Widget stack.。假设一种情况:同时打开多个应用,
并且各个应用之间的Windows 不存在完全覆盖,当我们用鼠标点击
某个应用的窗体,这个应用的窗体便会出现在屏幕的最上层。对于了
解windows 窗体服务器的同行来说,理解这个并不难,可能有一个类
似于Windows XP X-Windows Sever 的进程负责管理鼠标、键盘、与
LCD 显示的操作。对于智能手机的GUI 我是第一次接触,非智能手
机的窗体管理是比较简单的,以我以前从事的一个手机平台为例,手
机只存在一个dialog Stack, 把这个stack 看成一个Z 坐标,栈底位于
坐标原点,显示一整屏幕完整的画面就是从栈顶沿Z 坐标向下找到没
有被完全覆盖的windows 直到整个屏幕数据被完全填充,按键事件传
入到ui_task(ui_task 负责初始化其他应用,所有windows event 都由
dialogstack 应用负责分发)。回归正卷,QT 是如何管理窗体的呢?