QT待续

原创 2011年01月07日 17:02:00

 一个能够移植到多种硬件平台上的嵌入式GUI系统至少需要抽象出两类设备, 即负责显示图形界面的图形抽象层GAL (Graphic Abstract Layer)和负责接收及处理输入(一般输入设备为键盘、触摸屏)的输入抽象层IAL (Input Abstract Layer)。

 

 

目前在Qt/EmbeddedGAL层技术使用的是FrameBufer。

FrameBuffer 是出现在 2.2.xx 内核当中的一种驱动程序接口。这种接口将显示设
备抽象为帧缓冲区。用户可以将它看成是显示内存的一个映像,将其映射到进程地
址空间之后,就可以直接进行读写操作,而写操作可以立即反应在屏幕上。该驱动
程序的设备文件一般是 /dev/fb0、/dev/fb1 等等。比如,假设现在的显示模式是
1024x768-8 位色,则可以通过如下的命令清空屏幕:
$ dd if=/dev/zero of=/dev/fb0 bs=1024 count=768

在应用程序中,一般通过将 FrameBuffer 设备映射到进程地址空间的方式使用,
比如下面的程序就打开 /dev/fb0 设备,并通过 mmap 系统调用进行地址映射,随
后用 memset 将屏幕清空(这里假设显示模式是 1024x768-8 位色模式,线性内存
模式):
int fb;
unsigned char* fb_mem;
fb = open ("/dev/fb0", O_RDWR);
fb_mem = mmap (NULL, 1024*768, PROT_READ|PROT_WRITE,MAP_SHARED,fb,0);
memset (fb_mem, 0, 1024*768);
FrameBuffer 设备还提供了若干 ioctl 命令,通过这些命令,可以获得显示设备
的一些固定信息(比如显示内存大小)、与显示模式相关的可变信息(比如分辨
率、象素结构、每扫描线的字节宽度),以及伪彩色模式下的调色板信息等等。

 

 

 Qt/Embedded (下文中简称为qt/e)是Qt的嵌入式Linux版本。qt/e延续了Qt的强大功能,与Qt类似,qt/e类库也完全采用C++ 封装, 但在底层舍弃了X-Window ,而是采用Frame Buffer作为底层图形接口。因此,qt/e具有丰富的控件资源和良好的可移植性。从Trolltech公司的网站上可以下载到qt-embedded-opensource-4.0.0-b2.tar.gz和qtopia-core-opensource-src-4.1.1.tar.gz安装包

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【待续】海思Hi3520A学习笔记

海思Hi3520A学习笔记
  • lile777
  • lile777
  • 2015年03月03日 08:43
  • 1777

京东:电商安全未完待续

  • 2013年01月12日 12:44
  • 647KB
  • 下载

exercise 37 符号复习-待续

Keywords Keyword Description Example and Logical and. True and False == False as Part of t...

strongswan整合radius(待续)

测试系统:centos7.0 下载strongswan源码包编译安装,yum install strongswan出来的默认没有启用eap-radius yum install openssl-dev...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:QT待续
举报原因:
原因补充:

(最多只允许输入30个字)