QtE开发基础
⏹嵌入式GUI特点及种类
⏹安装与建立QtE桌面运行环境⏹QtE Hello程序
⏹嵌入式GUI特点及种类
⏹嵌入式系统对GUI的基本要求包括轻型、占用资源少、高性能、高可
靠性及可配置。
⏹尽管实时嵌入式系统对GUI的需求越来越明显,但目前GUI的实现方法
各有不同,主要有以下几点:
⏹某些大型厂商有能力自己开发满足自身需要的GUI系统。
⏹某些厂商没有将GUI作为一个软件层从应用程序中剥离,GUI的支
持逻辑由应用程序自己来负责。
⏹采用某些比较成熟的GUI系统,比如MiniGUI,MicroWindows
或其他GUI系统。
⏹MiniGUI
⏹MiniGUI由原清华大学教师魏永明先生开发,是一种面向嵌入式系
统或实时系统的图形用户界面支持系统。
它主要运行于Linux控制台,实际可以运行在任何一种具有POSIX线程支持的POSIX兼容系
统上。
⏹MicroWindows
⏹MicroWindows是一个著名的开放源码的嵌入式GUI软件。
它提供了
现代图形窗口系统的一些特性。
MicroWindows API接口支持类
Win32API,接口试图和Win32完全兼容,而且还实现了一些Win32用户模块功能。
⏹Qt/Embedded
⏹Qt/Embedded(简称QtE)是一个专门为嵌入式系统设计图形用户界
面的工具包。
Qt是挪威Trolltech软件公司的产品,它为各种系统提供图形用户界面的工具包,QtE就是Qt的嵌入式版本。
⏹使用QtE,开发者可以:
⏹用QtE开发的应用程序要移植到不同平台时,只需要重新编译代
码,而不需要对代码进行修改。
⏹可以随意设置程序界面的外观。
⏹可以方便地为程序连接数据库。
⏹可以使程序本地化。
⏹可以将程序与Java集成。
⏹嵌入式系统地要求是小而快速,而QtE就能帮助开发者为满足这些要
求开发强壮地应用程序。
⏹QtE是模块化和可裁剪地。
开发者可以选取他所需要的一些特性,而
裁剪掉所不需要的。
这样,通过选择所需要的特性,QtE的映像变得很小,最小只有600K左右。
⏹同Qt一样,QtE也是用C++写的,虽然这样会增加系统资源消耗,但是
却为开发者提供了清晰的程序框架,使开发者能够迅速上手,并且能够方便地编写自定义的用户界面程序。
⏹由于QtE是作为一种产品推出,所以它有很好的开发团体和技术支
持,这对于使用QtE的开发者来说,方便开发过程,并增加了产品的可靠性。
⏹总的来说,QtE拥有下面一些特征:
⏹拥有同Qt一样的API;开发者只需要了解Qt的API,不用关心程序
所用到的系统与平台
⏹它的结构很好地优化了内存和资源地利用。
⏹拥有自己的窗口系统:QtE不需要一些子图形系统。
它可以直接对
底层的图形驱动进行操作。
⏹模块化:开发者可以根据需要自己定制所需要的模块。
⏹代码公开以及拥有十分详细的技术文档帮助开发者。
⏹强大的开发工具。
⏹与硬件平台无关:QtE可以应用在所有主流平台和CPU上。
支持所
有主流的嵌入式Linux,对于在Linux上的QtE的基本要求只不过是Frame Buffer设备和一个C++编译器(如gcc)。
Qte同时也支持很多实时的嵌入式系统,如QNX和WindowsCE。
⏹提供压缩字体格式:即使在很小的内存中,也可以提供一流的字
体支持。
⏹支持多种的硬件和软件的输入。
⏹支持Unicode,可以轻松地使程序支持多种语言。
⏹支持反锯齿文本和Alpha混合的图片。
⏹Qt/Embedded嵌入式工具开发包
⏹Qt/Embedded是一个为嵌入式设备上的图形用户接口和应用开发
而订做的C++工具开发包.它通常可以运行在多种不同的处理器上部署的嵌入式Linux操作系统上。
⏹Qt/Embedded提供了一种类型安全的被称之为信号与插槽的真正的
组件化编程机制。
⏹Qt/Embedded包括了它自身的窗口系统,并支持多种不同的输入设
备。
⏹Qt/Embedded还是为小型设备提供的Qtopia应用环境的基础。
⏹系统要求
⏹Qt/Embedded很省内存。
⏹Qt/Embedded可以运行在被Linux支持的所有的处理器上。
⏹Qt/Embedded的库可以通过在编译时去除不需要的功能来
进行精简。
⏹Qt/Embedded还使用了一些节省内存空间的技术,例如隐
式共享(写时复制)和缓存。
⏹Qt/Embedded架构
⏹Qt/Embedded为带有轻量级窗口系统的嵌入式设备提供了一个标准的
Qt API.
Qt/Embedded与Qt/X11的Linux版本的比较
⏹窗口系统
一个Qt/Embedded窗口系统包含了一个或多个进程,其中的一个进程可作为服务器。
⏹字体
Qt/Embedded支持四种不同的字体格式:True Type字体
(TTF),Postscript Type1字体,位图发布字体(BDF)和Qt的预呈现(Pre-rendered)字体(QPF)。
⏹输入设备
Qt/Embedded3.0支持几种鼠标协议:BusMouse,
IntelliMouse,Microsoft和MouseMan.Qt/Embedded还支持NEC
Vr41XX和iPAQ的触摸屏。
⏹输入方法
对于非拉丁语系字符(例如阿拉伯,中文,希伯来和日语)的输入法,需要把它写成过滤器的方式,并改变键盘的输入。
⏹屏幕加速
通过子类化QScreen和QgfxRaster可以实现硬件加速,从而为屏幕操作带来好处。
⏹安装与建立QT桌面运行环境
Qt/Embedded平台的搭建
⏹解压安装包并设置环境变量
⏹安装Tmake;安装Qt2.3.2;安装Qt/Embedded;环境
变量的设置
⏹编译Qt/Embedded
⏹Build Qt2.3.2;Build Qvfb;Build Qt/Embedded ⏹查看运行结果
⏹在Virtual framebuffer上运行:qvfb-width640-
height480&
Qt/Embedded Demo程序
QtE Hello程序
1#include<qapplication.h>
2#include<qlabel.h>
3int main(int argc,char**argv[])
4{
5QApplication app(argc,argv);
6QLabel*hello=new QLabel("Hello Qt/Embedded!",0);
7app.setMainWidget(hello);
8hello->show();
9return app.exec();
10}
⏹要在本机的Virtual framebuffer中显示结果,下面几步是必须的:
⏹1.生成工程文件(.pro)
⏹2.生成Makefile文件。