嵌入式GUI的相关比较(minigui,qte)一月份读书笔记

 
一、Microwindows
Microwindows是一个典型的基于Server/Clinent体系结构的GUI系统 他分为三层 显示设备、输入设备,窗口管理硬件抽象层,Nano-X、ECMA APIW。
最底层是面向图形显示和键盘、鼠标或触摸屏的驱动程序;中间层提供底层硬件的抽象接口,并进行窗口管理;最高层分别提供兼容于 X Window和ECMA APIW(Win32子集)的API。其中使用Nano-X接口的API与X接口兼容,但是该接口没有提供窗口管理,如窗口移动和窗口剪切等高级功能,系统中需要首先启动nano-X的Server程序nanoxserver和窗口管理程序nanowm。用户程序连接nano-X的Server获得自身的窗口绘制操作。使用ECMA APIW编写的应用程序, 无需nanox-server和nanowm,可直接运行。
Microwindwos系统提供了相对完善的图形功能和一些高级的特性,如Alpha混合、三维支持和TrueType字体支持等。该系统为了提高运行速度,也改进了基于Socket套接字的X实现模式,采用了基于消息机制的Server/Client传输机制。Microwindows也有一些通用的窗口控件,但其图形引擎存在许多问题,可以归纳如下:
1、     无任何硬件加速能力;
2、图形引擎中存在许多低效算法,如在圆弧图函数的逐点判断剪切的问题。
3、由于该项目缺乏一个强有力的核心代码维护人员,2003年Microwindows推出版本0.90 后,该项目的发展开始陷于停滞状态。
二、 miniGUI
  MiniGUI是由国内自由软件开发人员设计开发的,目标是为基于Linux的实时嵌入式系统提供一个轻量级的图形用户界面支持系统。MiniGUI的体系架构分为GAL层和IAL层、Mini-thread,Mini-lite层、ECMA APIW三层。
  MiniGUI分为最底层的GAL层和IAL层,向上为基于标准POSIX接口中pthread库的Mini-thread架构和基于Server/Client的Mini-Lite架构。其中前者受限于thread模式对于整个系统的可靠性影响——进程中某个thread的意外错误可能导致整个进程的崩溃,该架构应用于系统功能较为单一的场合。Mini-Lite应用于多进程的应用场合,采用多进程运行方式设计的Server/Client架构能够较好地解决各个进程之间的窗口管理、Z序剪切等问题。MiniGUI还有一种从Mini-Lite衍生出的standalone运行模式。与Lite架构不同的是,standalone模式一次只能以窗口最大化的方式显示一个窗口。这在显示屏尺寸较小的应用场合具有一定的应用意义。
  MiniGUI的GAL层技术SVGA lib、LibGGI、基于framebuffer的native图形引擎以及哑图形引擎等,对于Trolltech公司的QVFB在X Window下也有较好的支持。IAL层则支持Linux标准控制台下的GPM鼠标服务、触摸屏、标准键盘等。
  MiniGUI下丰富的控件资源也是MiniGUI的特点之一。当前MiniGUI的最新版本是1.3.3。该版本的控件中已经添加了窗口皮肤、工具条等桌面GUI中的高级控件支持。
 三、 QT/Embedded  Qt/Embedded是著名的Qt库开发商Trolltech公司开发的面向嵌入式系统的Qt版本。因为Qt是KDE等项目使用的GUI支持库,许多基于Qt的X Window程序因此可以非常方便地移植到Qt/Embedded上。Qt/Embedded同样是Server/Client结构。
  Qt/Embedded延续了Qt在X上的强大功能,在底层摒弃了X lib,仅采用framebuffer作为底层图形接口。同时,将外部输入设备抽象为keyboard和mouse输入事件,底层接口支持键盘、GPM鼠标、触摸屏以及用户自定义的设备等。
  Qt/Embedded类库完全采用C++封装。丰富的控件资源和较好的可移植性是Qt/Embedded最为优秀的一方面。它的类库接口完全兼容于同版本的Qt-X11,使用X下的开发工具可以直接开发基于Qt/Embedded的应用程序QUI界面。
  与前两种GUI系统不同的是,Qt/Embedded的底层图形引擎只能采用framebuffer。这就注定了它是针对高端嵌入式图形领域的应用而设计的。由于该库的代码追求面面俱到,以增加它对多种硬件设备的支持,造成了其底层代码比较凌乱,各种补丁较多的问题。Qt/Embedded的结构也过于复杂臃肿,很难进行底层的扩充、定制和移植,尤其是用来实现signal/slot机制的moc文件。
 
以上是常用的三种系统的介绍。再正常的应用中,应该考虑后两种系统。第一种系统几乎没有人再商业中使用。
MiniGUI和QTE这两种系统的都具有免费版本和授权版本(收费),以下是两种系统的比较
名称
MINIGUI
QTE
备注
厂商
飞漫(中国)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
目录第1章 在PC上安装双系统 1 1.1前期准备 1 1.2安装Fedora10过程详解 1 1.3安装Fedora10后的配置 9 1.3.1外观及Gnome桌面的使用 9 1.3.2网卡配置及连接IPV6网站 14 1.3.3升级及安装软件 17 1.3.4系统服务配置 18 1.3.5安装Linux下的虚拟机 19 1.4修复双系统启动 22 第2章 针对ARM目标板的交叉开发 24 2.1交叉编译环境 24 2.2交叉调试方法 25 2.3共享库相关 28 2.3.1基本的共享库使用知识点 28 2.3.2交叉编译的共享库 29 第3章 Linux下的串口使用 32 3.1 Linux下的串口设备 32 3.1.1串口简介 32 3.1.2串口与Linux终端设备、控制台 34 3.2 Linux下的“超级终端”工具 38 3.2.1 C-kermit的安装与使用 38 3.2.2简单的串口单双工通信实验 40 3.3串口编程总结 42 3.3.1相关数据结构 42 3.3.2相关函数 46 3.3.2串口编程实例 54 第4章 NFS交叉开发环境 59 4.1配置NFS服务 59 4.1.1设置共享目录 59 4.1.2启动和停止nfs 服务 59 4.2 NFS根文件系统启动 59 4.3 NFS交叉编译 60 第5章 创建根文件系统 62 5.1移植Busybox 62 5.2移植Glibc库 63 5.3完善根文件系统 63 5.4制作/烧写yaffs映像文件 66 第6章 MiniGUI移植与开发 67 6.1 MiniGUI在PC机上的开发环境的建立 67 6.1.1安装QVFB 67 6.1.2在PC上安装MiniGUI 68 6.2 MiniGUI在S3C2440上的开发环境的建立 71 6.2.1交叉编译相关的开源库 71 6.2.2针对本系统的MiniGUI输入引擎设计 73 6.2.3交叉编译并安装MiniGUI 74 6.2.4在mini2440开发板上运行MiniGUI示例程序 76 6.3 MiniGUI编程小结 78 6.3.1创建MiniGUI程序 78 6.3.2编译MiniGUI程序 81 6.3.3对话框程序 83 6.3.4自定义控件编写 88 6.3.5加入自己的线程 92 第7章 燃气监测系统的开发、调试过程 94 7.1项目简介 94 7.2开发设计 94 7.3调试过程 96 参考文献 100 附录 102 附录1电子科技大学清水河校区802.x上网认证脚本——作者lili(可以用来做学习Shell编程的实例哦) 102 附录2针对mini2440开发板的输入引擎文件mini2440.h和mini2440.c(原创) 108 附录3 VIM配置文件~/.vimrc内容 116

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值