基于QT的GUI设计 第3页
根据上表,需要的硬件模块在UP-TECHPXA270-S硬件实验平台上已一应俱全。音视频模块,对音视频输入输出功能都有着很好的支持;存储卡模块支持SD/MMC卡;USB主从接口模块支持U盘读取功能;蓝牙模块支持与外部蓝牙设备间的通讯等等。各种各样的接口便于我们扩展设计开发,当然这为“多媒体播放器”在插槽功能,音视频输出功能,USB通讯功能等方面提供了很好的硬件条件。在此平台上还配制了8英寸的TFT真彩液晶屏,可模拟的充当此次项目“多媒体播放器”的用户交互平台,支持640*480的分辨率。UP-TECHPXA270-S在存储系统方面也有着很高的配置,内置了高性能价格比的NAND FLASH 64M内存,支持大容量的用户差异图形图片和媒体文件的存储。
CPU的能力当然是毋庸置疑的,Intel Xscale结构芯片的PXA270在各方面都表现了很强悍的能力,在目前市场上来说也是一款很先进的处理器芯片。PXA270处理器是Intel公司目前性能最为强劲的移动处理器,已经成为高端移动设备中最受欢迎的处理器之一。PXA270最高主频可达624MHz,它引入了X86架构奔腾4系列上的多媒体技术——MMX技术,能够大大提升多媒体处理能力,用户通过该技术可以在VGA上面播放高质量的MPGE4视频;同时加入了Intel SpeedStep动态电源管理技术,在保证CPU性能的情况下,最大限度地降低移动设备功耗。
1.4 本章小结
本章主要介绍本项目的选题背景、意义,选题目标和项目需求分析,根据产品市场和本人技术水平情况,按需求划分软件功能模块,还根据软件功能和现有资源的性能对硬件需求做了详细分析。
2 QT4的GUI简介
2.1 QT的背景介绍
Qt/Embedded 是著名的Qt库开发商Trolltech公司开发的面向嵌入式系统的Qt版本,开发人员多为KDE项目的核心开发人员。许多基于Qt的X Window程序可以非常方便地移植到Qt/Embedded上,与X11版本的Qt在最大程度上接口兼容,延续了在X上的强大功能,在底层彻底摒弃了X lib,仅采用framebuffer作为底层图形接口。Qt/Embedded类库完全采用C++封装。丰富的控件资源和较好的可移植性是Qt/Embedded最为优秀的一方面,使用X下的开发工具Qt Designer可以直接开发基于Qt/Embedded的UI(用户操作接口)界面。越来越多的第三方软件公司也开始采用Qt/Embedded开发嵌入式Linux下的应用软件。
2.2 QT实现的结构原理
Qt/Embedded是Trolltech公司开发的面向嵌入式系统的Qt版本,与X11版本的Qt在最大程度上接口兼容,采用帧缓存(framebuffer)作为底层图形接口。Qt/Embedded类库完全采用C++封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/Embedded API可用于多种开发项目。Qt/Embedded的实现结构如下:
图2-1 QT的实现结构图
Qt/Embedded 的底层图形引擎基于framebuffer。Framebuffer是在Linux内核架构版本2.2以后推出的标准显示设备驱动接口。Framebuffer 驱动程序的实现分为两个方面:一方面是对LCD及其相关部分的初始化,包括画在缓冲区的创建和对DMA通道的设置;另外一方面是对画面缓冲区的读写,具体到代码为read、write、lseek等系统调用接口。至于将画面缓冲区的内容输出到LCD显示屏上,则由硬件自动完成。对于软件来说是透明的。当对于DMA通道和画面缓冲区设置完成后,DMA开始正常工作,并将缓冲区中的内容不断发送到LCD上。这个过程是基于DMA对于LCD的不断刷新的。基于该特性,framebuffer驱动程序必须将画面缓冲区的存储空间(物理空间)重新映射到一个不加高缓存和写缓存的虚拟地址区间中,这样能才保证应用程序通过mmap将该缓存映射到用户空间后,对于该画面缓存的写操作能够实时的体现在LCD上。
QT程序是基于C++编写的,图形用户界面编程同时需要运行效率和高水平的灵活性。Qt通过结合C++的速度为这一领域提供了Qt对象模型。
Qt把下面这些特性添加到了C++当中:
一种被称为信号和槽的非常强大的机制;可查询和可设计的属性项;强大的事件和事件过滤器;根据上下文进行国际化的字符串翻译;完善的时间间隔驱动的计时器等。
许多Qt的特性是基于QObject的继承,通过标准C++技术实现的。
QApplication是必须构造的Qt主对象,需要在一开始的时候就构造这个对象,并把命令行参数传递给这个对象,每个Qt应用程序有且仅有一个QApplication对象,该对象必须在做其他事之前创建,这个对象处理一些底层操作,如事件处理、字符串本地化和控制界面外观等。
信号和信号处理函数是GUI应用程序用来响应用户输入的基本机制,也是所有GUI库的核心特征,Qt的信号处理机制由信号(signal)和槽(slot)构成,它们相当于GTK+中的信号和回调函数。在Qt中回调函数就叫做槽。
信号和槽用于对象间的通讯,它的基本语法为:
connect(object1,signal1,object2,slot1);
2.3 QT应用程序的实现
由以上简介可知,Qt是一个创建GUI程序的C++类库,编写Qt应用程序的主要工作是基于已有的Qt类编写用户类。
Qt提供了一组范围相当广泛的C++类库,并包含了几种命令行和图形界面的工具,有效地使用这些工具可以加速开发过程。
Qt Designer:Qt设计器。用来可视化地设计应用程序界面。
Qt Linguist:Qt语言学家。用来翻译应用程序。以此提供对多种语言的支持。
Qmake:使用此工具可以由简单的、与平台无关的工程文件来生成编译所需的Makefile。
Qt Assistant:关于Qt的帮助文件。类似于MSDN。可以快速地发现你所需要的帮助。
moc:元对象编译器。
uic:用户界面编译器。在程序编译时被自动调用,通过ui_*.h文件生成应用程序界面。
Qt应用程序的设计使用基于工程的方法,并通过.pro文件进行工程管理。实现应用程序的第一步是编写.pro文件,然后使用QT4自带的qmake工具生成Makefile,最后进行源代码的编译。
Qmake的过程如下:
qmake –project //生成.pro的工程文件
qmake //生成Makefile
make //编译
2.4 本章小结
随着越来越多的第三方软件公司利用Qt/Embedded开发嵌入式Linux下的应用软件,Qt的应用已经越来越广泛。本章主要介绍了QT的背景和描述了QT实现的结构原理,还简述了QT的相关特性。此外,也介绍了QT应用程序开发时的相关工具。
3 系统框架描述
3.1 系统模块
系统OS层使用嵌入式Linux系统,底层调用多种驱动,其中包括:USB键盘、鼠标驱动,网卡驱动,蓝牙驱动,触摸屏驱动等。软件层API使用QT4自由版提供的API。应用层包括优大模块,每个模块有各自的GUI界面。
图3-1 系统模块图
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>
基于QT的GUI设计 第3页下载如图片无法显示或论文不完整,请联系qq752018766