
周运练-基于QT的GUI设计.doc
60页北京理工大学珠海学院 2009 届本科生毕业设计I基于 QT 的 GUI 设计摘 要目前,嵌入式系统发展迅速,应用广泛基于 Qt/E 的嵌入式 GUI 设计成为国家以及部分企业支持的重点方向随着当前各种手持设备、无线设备及信息家电等嵌入式产品的迅猛发展,相应的嵌入式软硬件设计技术也在发生深刻的变化如今,越来越多的嵌入式终端需要一个图形化的人机接口界面(GUI) ,良好的人机接口界面是嵌入式系统设计的一个关键技术,能够极大地提高人机交互的效率本文详细阐述了在博创公司的 UP-TECHPXA270-S 教学科研平台上实现基于嵌入式 Linux 系统和 QT4 图形界面显示终端的过程本文以项目《基于 linux2.3 QT 应用程序的实现由以上简介可知,Qt 是一个创建 GUI 程序的 C++类库,编写 Qt 应用程序的主要工作是基于已有的 Qt 类编写用户类Qt 提供了一组范围相当广泛的 C++类库,并包含了几种命令行和图形界面北京理工大学珠海学院 2009 届本科生毕业设计12的工具,有效地使用这些工具可以加速开发过程Qt Designer:Qt 设计器用来可视化地设计应用程序界面。
Qt Linguist:Qt 语言学家用来翻译应用程序以此提供对多种语言的支持Qmake:使用此工具可以由简单的、与平台无关的工程文件来生成编译所需的 MakefileQt Assistant:关于 Qt 的帮助文件类似于 MSDN可以快速地发现你所需要的帮助moc:元对象编译器uic:用户界面编译器在程序编译时被自动调用,通过 ui_*.h 文件生成应用程序界面Qt 应用程序的设计使用基于工程的方法,并通过.pro 文件进行工程管理实现应用程序的第一步是编写.pro 文件,然后使用 QT4 自带的 qmake 工具生成Makefile,最后进行源代码的编译Qmake 的过程如下:qmake –project //生成.pro 的工程文件qmake //生成 Makefilemake //编译2.4 本章小结随着越来越多的第三方软件公司利用 Qt/Embedded 开发嵌入式 Linux 下的 应用软件,Qt 的应用已经越来越广泛本章主要介绍了 QT 的背景和描述了 QT 实现的结构原理,还简述了 QT 的相关特性此外,也介绍了 QT 应用程序开发 时的相关工具。
北京理工大学珠海学院 2009 届本科生毕业设计133 系统框架描述3.1 系统模块系统 OS 层使用嵌入式 Linux 系统,底层调用多种驱动,其中包括:USB 键 盘、鼠标驱动,网卡驱动,蓝牙驱动,触摸屏驱动等软件层 API 使用 QT4 自 由版提供的 API应用层包括六大模块,每个模块有各自的 GUI 界面嵌入式 Linux 操作系统触摸 屏LCD 驱动蓝牙 驱动网卡 驱动USB 驱动键鼠 驱动嵌入式 GUI(QT4)图片 浏览电子 书局域 聊天时钟、 日历多媒 体网页 浏览应用层接口层系统层PXA 270 开发板硬件层图 3-1 系统模块图3.2 主要功能图片浏览模块实现了放大缩小、旋转、全屏浏览、前移、后移、浏览 U 盘中的图片,浏览蓝牙共享的图片,从指定目录中浏览图片,支持BMP、JPE、JPEG、PNG、JPG、GIF 等格式电子书浏览功能支持 txt 格式的文本文档网页浏览功能:基于 WebKit 引擎的网页浏览时钟、日历显示:利用友好的界面显示、设置时钟、日历等多媒体播放模块:利用 MPlayer 的解码器,实现以下功能:1.音频播放功能:能播放 MP3 等格式的音频文件。
2.视频播放功能:支持 AVI 格式的视频播放北京理工大学珠海学院 2009 届本科生毕业设计14局域聊天:可以通过局域网多机通讯3.3 平台简介本系统设计使用的硬件平台是由北京博创兴业科技有限公司开发的 UP-TECHPXA270-S 实验平台该平台是基于 Intel XSCALE 架构最新的 PXA270 嵌入式微处理器最高主频可达 624MHz,加入了 Wireless MMX 技术,大大提升了多媒体处理能力;同时 PXA270 还加入了 Intel SpeedStep 动态电源管理技术,在保证 CPU 性能的情况下,最大限度地降低移动设备功耗PXA270 可以广泛应用于 PDA、智能、PMP 产品中博创科技的 UP-TECHPXA270-S 教学科研平台主要是面向计算机、软件专业的高端平台,微处理器主频稳定运行在520MHz,可运行 WinCE5.0 和 Linux 2.6.x 操作系统,支持 QT/E、miniGUI 等嵌入式图形界面,提供完整的驱动和应用程序图 3-2 UP-TECHPXA270-S 教学科研平台图UP-TECHPXA270-S 教学科研平台由处理器核心板、主板及 LCD 三部份组成。
核心板和主板的接口设计充分考虑了升级产品的兼容性,核心板可以升级到PXA271、PXA272 微处理器,而主板资源不变此外,除了具有丰富的接口资源,良好的可扩展性也是 UP-TECHPXA270-S 平台的一大特色 UP-TECHPXA270-S 北京理工大学珠海学院 2009 届本科生毕业设计15预留了 32 位扩展总线接口,与博创 UP-NetARM2410、UP-NetARM2410-S 平台兼容,从而大大减轻了用户扩展新功能的负担PXA270 核心板CPU SDRAM Nand Flash NorthFlash总线隔离驱动电路10/100M 网卡 RJ45 接口MIC、LINE-IN/OUT 模拟功率放大器AC97 CODEC触摸屏接口KEYPADRTC 实时钟RS232 串口VGA 输出640*480 TFT 16bit LCD 液晶屏USB1.1 DEVICEUSB1.1 HOST 4 端口USB HUB图 3-3 以 PXA270 为核心的硬件架构图3.4 UP-TECHPXA270-S 核心模块资源基于 Intel XScale 架构内核的嵌入式处理器 PXA270,内部集成 iwmmx 指令,加速处理器对多媒体数据的 处理速度。
辅助 CPULPC2119 ARM7TDMI-S系统稳定工作在 520MHZ 主频,64MB SDRAM、16MB Nor Flash、64MB Nand Flash 库1) UP-TECHPXA270-S 软件资源:Bootloader:BLOB; 操作系统:2.6.X; 驱动程序:提供所有板级设备的驱动程序;2) UP-TECHPXA270-S 平台配套线缆:RJ45 交叉网线; DC12V 电源适配器; 用户自备 CAN、RS485 等的连接导;3) PXA270-S 开发平台硬件资源: PXA270 Core 小板:PXA270 XScale CPU、64M SDRAM、64M NAND FLASH,16M NorFLASH通过256Pin 2mm 间距直插针与主板连接北京理工大学珠海学院 2009 届本科生毕业设计16 Double 100M EtherNet 网卡:由两片DM9000 构成的双网卡, 4 HOST / 1 DEVICE USB 接口:PXA270 的主USB 口扩展为4 个,由AT43301 构成USB HUB,其中电源管理用MIC2505。
3 UART/IrDA/RS485: 2 个RS232 串口1 个RS485 串口,1 个IrDA 收发器,均从处理器的ICP UART 引出,由FPGA 内部逻辑切换 LCD 显示屏:采用8 寸18bit 真彩屏,同时预留一个24bit LCD 接口 TouchScr: 通过UCB1400 芯片和AC97 总线实现 AC97 AUDIO:采用UCB1400 CODEC 和LM4880 功放芯片,具有放音、录音功能 板载17 键小键盘:从处理器键盘接口扩充 电源、RESET、RTC、JTAG 等必须资源电源电路具有专门逻辑,可以实现软件关机功能PXA270-S 开发平台需要DC12V 供电 ARM7 辅助处理器:平台上配置LPC2119 ARM7 芯片,配合扩展板可完成市场上LPC2119 开发板的大部分功能LPC2119 通过SPI 和IIC 总线与PXA270 通信 AD 电位器:由LPC2119 扩展出2 路AD 采集 CAN BUS:设置2 个CAN 口,由LPC2119 扩展和TJA1050 芯片构成 VGA 接口:可以接驳VGA 显示器 USB2.0 接口:由ISP1760 扩展,提供2 个USB2.0 HOST 接口,1 个USB2.0 OTG/Device接口。
MIC2526 作为电源控制器件 IEEE1394 总线接口:由TSB43AA82PGE 扩展出2 个1394 接口(FireWire 火线接口)3.5 本章小结本章介绍了本项目的系统模块,包括每个模块的功能描述此外,还介绍了系统的硬件架构以及开发平台的软件、硬件模块资源等北京理工大学珠海学院 2009 届本科生毕业设计174 详细设计本系统主界面中心为 2D 渲染的立体菜单选择,背景用绚丽图片衬托,系统共分以下模块:数码相框,音视频播放器,电子书,网页浏览器,时钟显示,局域网聊天整个系统包括以下文件:图 4-1 项目文件名称图各个模块有独立的 GUI,界面效果吸引视觉,以下模块详细设计北京理工大学珠海学院 2009 届本科生毕业设计184.1 主界面设计本系统各模块由主界面进入,以下为模块框架:多媒体播放 器数码相框电子书音视频播放 器局域网聊天网页浏览器时钟显示图 4-2 系统模块框架图系统主界面在中心添加 pictureflow 图片滑动效果,每个图片为作为一个模块的入口PictureFlo w:QwidgetPictureFlo wPrivatesetBackgro undColorPictureFlo wStatePictureFlo wAnimatorSoftwareRe ndereraddSlidereposition ()reset()Start()Stop()init()paint()reflection Effect()update()render()renderSlid es()showPrevio usshowNext图 4-3 PictureFlow 效果实现相关类及函数图北京理工大学珠海学院 2009 届本科生毕业设计19以下为主要的类和实现方法:1) class PictureFlow;此类继承于 Qwidget 类,用于创建一个 weidget窗口部件。
其中包括:QColor backgroundColor();返回背景颜色;setBackgroundColor(const QColor返回每张幻灯片(图片)像素大小;setSlideSize(QSize size); 设置每张幻灯片(图片)像素大小;QImage slide(int index) const;返回中心索引的图片;ReflectionEffect reflectionEffect() const;返回倒影效果的值;setReflectionEffect(ReflectionEffect effect);设置倒影效果;addSlide(const QPixmap在滑动区域添加图片;void setSlide();设置滑动区域的图片;showPrevious();showNext();负责图片向前、向后滑动的实现;render();负责渲染 weidget 窗口部件;paintEvent(QPaintEvent *event);负责绘画图片和背景;keyPressEvent(QKeyEvent* event);负责键盘按键触发事件;mousePressEvent(QMous。
