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安装包

 

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

相关文章推荐

程序员面试智力题集锦

1、假设你站在镜子前,抬起左手,抬起右手,看看镜中的自己。当你抬起左手时,镜中的自己抬起的似乎是右手。可是当你仰头时,镜中的自己也在仰头,而不是低头。为什么镜子中的影像似乎颠倒了左右,却没有颠倒上下?...

重写、覆盖、重载、多态几个概念的区别分析

override->重写(=覆盖)、overload->重载、polymorphism -> 多态 override是重写(覆盖)了一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

关于委托的例子

第一个例子   public  delegate  void  EatEventHandler(object  sender,  EatEventArgs  e);    这个的定义也可以不要这样.可...

用C++设计一个不能被继承的类

在C#中定义了关键字sealed,被sealed修饰的类不能被继承。在Java中同样也有关键字final表示一个类型不能被继承。在C++中没有类似于sealed和final的关键字,所以我们只有自己来...

C++学习之深入理解虚函数--虚函数表解析

C++学习之深入理解虚函数--虚函数表解析 标签: C++C++虚函数虚函数表解析虚函数表 2014-03-27 11:05 11838人阅读 评论(6) 收藏 举报  分类...

浅谈C++多态性

C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。   多态性可以简单地概括为“...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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