基于ARM和QT的嵌入式图形用户界面设计与实现

上传人:壹****1 文档编号:431140249 上传时间:2022-12-06 格式:DOC 页数:11 大小:508.60KB
返回 下载 相关 举报
基于ARM和QT的嵌入式图形用户界面设计与实现_第1页
第1页 / 共11页
基于ARM和QT的嵌入式图形用户界面设计与实现_第2页
第2页 / 共11页
基于ARM和QT的嵌入式图形用户界面设计与实现_第3页
第3页 / 共11页
基于ARM和QT的嵌入式图形用户界面设计与实现_第4页
第4页 / 共11页
基于ARM和QT的嵌入式图形用户界面设计与实现_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《基于ARM和QT的嵌入式图形用户界面设计与实现》由会员分享,可在线阅读,更多相关《基于ARM和QT的嵌入式图形用户界面设计与实现(11页珍藏版)》请在金锄头文库上搜索。

1、上海电力学院课程设计报告 题目: 基于ARM和QT的嵌入式图形用户界面设计与实现专业: 自动化(电站) 班级: XXXXXX 姓名: 学号: 一、Qt课题研究意义、国内外研究现状及应用分析:Qt 是一个跨平台的C+图形用户界面库,是挪威Trolltech 公司的产品。Qt 是一个全面的C+应用程序开发框架。它包含一个类库,和用于跨平台开发及国际化的工具。Qt 是用于本地化跨平台应用开发的领先性框架。Qt 应用程序接口与工具兼容于所有支持平台,让开发员们掌握一个应用程序接口,便可执行与平台非相关的应用开发与配置。通过使用Qt,开发小组们从主要的开发平台,可为主要操作系统创建本地化的应用程序。众多

2、的 Qt 类库构成Qt 的基础。该库可以利用大约400 个面向对象的类,这些类带有大多数构建跨平台服务器与富客户端应用程序的底层基础构造函数.这些库包括用于GUI、布局、数据库、国际化、网络与XML 等的类。在开发用户图形界面中,一个常见并重复发生的系统崩溃与问题源,即如何在不同组件之间进行通信。对于该问题,Qt 的解决方案为信号与槽机制。信号与槽是Qt 的主要特征,它对促进对象通信提供一个类型安全的方法,并可能是区别于其它多数框架所提供特征的一个部分。Qt/Embedded 是一个完整的自包含GUI 和基于Linux 的嵌入式平台开发工具,是Qt 在嵌入式平台的版本。Qt/Embedded

3、以原始 Qt 为基础,并做了许多出色的调整以适用于嵌入式环境。Qt/Embedded 通过 Qt API 与 Linux I/O 设施直接交互,成为嵌入式Linux 端口。同Qt/X11 相比,Qt/Embedded 很省内存,因为它不需要一个X 服务器或是Xlib 库,它在底层摒弃了X lib,采用framebuffer(帧缓冲)作为底层图形接口。同时,将外部输入设备抽象为keyboard 和mouse 输入事件。Qt/Embedde 的应用程序可以直接写内核缓冲帧,这避免开发者使用繁琐的Xlib/Server 系统。 图一、 Qt/Embedded 与Qt/X11 的比较Qt/Embedd

4、ed 的底层图形引擎基于Framebuffer。Framebuffer 是Linux 2.2.x 以上本版内核中的一种驱动程序接口。这种接口采用mmap 系统调用,将显示设备抽象为帧缓冲区。用户可以将它看成是显示内存的一个映象,将其映射到进程地址空间之后,就可以直接进行读写操作了,而写操作可以立即反映在屏幕上。framebuffer 驱动程序是最重要的驱动程序之一,正是这个驱动程序才能使系统屏幕显示内容。其实现分为两个方面:一是对LCD 及其相关部件的初始化,包括画面缓冲区的创建和对DMA 通道的设置;二是对画面缓冲区的读写,具体到代码为read、write 等系统调用接口。Qtopia 是一

5、种全方位的应用程序开发平台,它可用于基于嵌入式Linux 的PDA(个人数字助理),移动电话,web pads,以及其他移动计算设备。Qtopia 构建于Qt/Embedded 之上,是专为基于Linux 的消费电子设备提供和创建图形用户界面而设计的。常见的有2 种版本:QtopiaPhone 版和Qtopia PDA 版。Qtopia Phone 版必须付费才能得到,而Qtopia PDA 版有免费版本。输入法:Qtopia 支持两种基本类型的输入法。Qtopia 可由带有少量按键的键盘驱动,也可由用于触摸屏设备的手写笔驱动。Qtopia 支持众多的文本输入方式,包括基于键盘的预测键入,可定

6、制的手写识别,以及屏幕键盘输入。此外,还支持数种可用于亚洲书写系统的第三方输入方式。国际化支持:Qtopia 内部使用统一的代码,因此可以很方便地针对不同的市场进行本地化。此外,程序的设计引擎能自动调整比原始文本长或短的翻译文本的按钮和标签。目前,Qtopia 支持多种语言。屏幕尺寸/布局:Qtopia 强大的设计引擎支持各种屏幕尺寸以及横向和纵向布局,包括176208,176220,240320 和480640 (像素)。程序发布器:Qtopia 含有一个程序发布器。根据使用版本的不同(PDA 或Phone),程序发布器也会有所不同,但它始终包含一个默认的基于图标的应用程序导航布局方案。插件

7、管理器:Qtopia 自带的插件框架使得向设备添加新特性无缝化且便捷。用户可以添加新字体,插入新的多媒体格式,添加或移除输入方式,插入新的媒体播放器外观,新的主项,以及许多其他特性。Qtopia PDA 版本简介:Qtopia PDA 版(Trolltech)是第一个用于嵌入式Linux PDA 的全方位应用程序开发平台。Qtopia PDA 版(Qtopia PDA),名副其实基于Linux 的PDA 的标准,可为新一代的高级移动计算设备提供稳定的软件平台。Qtopia PDA 运行于Linux 之上,只需占用少量内存就能提供强大的功能。Qt/Embedded 和Qtopia 开发模式: 嵌

8、入式软件开发通常都采用交叉编译的方式进行,基于 Qt/Embedded 与Qtopia 的GUI应用开发也采取这样的模式。先在宿主机上调试应用程序,调试通过通过后,经过交叉编译移植到目标板上。二、方案设计及功能模块: 方案:在pc机linux系统下安装qtpia软件,在安装完成qtpia后,利用Qt软件设计一个图形化界面“welcome to Qt”,进行“welcome to Qt”的编程,“welcome to Qt”实现的功能为,运行“welcome to Qt”,在开始界面上我们可以看到三个按钮,分别为显示字符串,quit(退出),dialog(对话框)。实现的功能,显示字符串,按qu

9、it退出程序,点击dialog出现对话框,实现人机交互。三、系统硬件平台: 硬件: PC 机 一台MagicARM2410 教学实验开发平台 一套四、系统软件功能设计,程序流程图及代码实现: 首先是安装qtpia,然后进行编程,以实现想要的软件功能。 图形化界面软件的功能大致为,运行程序点击按钮会显示一串字符,而通过编程我们可以改变软件的框图大小,软件名字有我们自定义,显示的字符标签也由我们自定义,然后我们可以插入按钮部件,用按钮来控制软件的下一步动作。 在对按钮编程时,我们可以自定义它的大小,且可以设置它的一些属性,比如显示按钮,按钮的名字等。 然后是对dialog按钮进行编程,它实现了显示

10、一个新的对话框,自定义对话框的标题,点击对话框中的按钮,将会关闭新对话框。最后对界面中的开始 布局 Button1Dialog Quit显示字符新对话框点击退出关闭对话框 图二、程序框图 按流程图我们按以下步骤完成实验:1、首先对主程序进行编写,步骤如下:(1) 进入/zylinux/x86-qtopia 目录,运行set-env 脚本,为本实验设置环境变量,然后创建文件夹hello。命令行中输入以下命令:$ cd /zylinux/x86-qtopia$ . set-env$ mkdir hello(2) 进入hello 目录,新建文件hello.cpp,并编写如程序清单 9.1 所示的程序

11、,然后用progen 工具生成工程文件hello.pro。命令行中输入:$ cd hello$ vi hello.cpp$ progen t app.t o hello.pro(3) 使用tmake 工具,生成hello 工程的Makefile 文件。命令行:$ tmake -o Makefile hello.pro(4) 修改Makefile 文件,在LIBS 变量中增加需要用到的库,然后输入make 命令编译。LIBS = $(SUBLIBS) -L$(QTDIR)/lib -lqte -lm -lstdc+$ make(5) 启动虚拟控制台,运行hello 程序,将会得到如图 9.1 所

12、示的实验结果(主机须启动帧缓冲,必须能够访问/dev/fb0)。命令行:$ cd /zylinux/x86-qtopia$ . set-env$ cd hello$ ./hello qws或者在终端,启动虚拟缓冲区和 QPE,启动Qtopia 的终端,输入./hello 运行程序。命令行中输入: $ cd /zylinux/x86-qtopia$ . set-env$ cd hello$ qvfb&$ qpe2、按钮子程序编程步骤:(1) 进入/zylinux/x86-qtopia 目录,运行set-env 脚本,设置环境变量,然后创建文件夹button。命令行中输入:$ cd /zylinu

13、x/x86-qtopia$ . set-env$ mkdir button(2) 进入button 目录,新建文件button.cpp,并编写如程序清单 9.2 所示的程序,然后用progen 工具生成工程文件button.pro。命令行中输入:$ cd button$ vi button.cpp$ progen t app.t o button.pro(3) 使用tmake 工具生成Makefile 文件,并按照9.1 小节进行修改,编译程序,得到可执行文件button。输入命令:$ tmake o Makefile button.pro$ make(4) 启动虚拟控制台,运行button

14、程序。命令行中输入:$ ./button qws3、quit子程序编程步骤:(1) 进入/zylinux/x86-qtopia 目录,运行set-env 脚本,设置环境变量,然后创建文件夹signalslot。命令行中输入:$ cd /zylinux/x86-qtopia$ mkdir signalslot(2) 进入signalslot 目录,建立文件signalslot.cpp,并编写如程序清单 9.3 所示的程序,然后用progen 命令生成工程文件signalslot.pro。命令行中输入:$ cd signalslot$ vi signalslot.cpp$ progen t app

15、.t o signalslot.pro(3) 使用tmake 工具,生成signalslot 工程的Makefile 文件,然后编译,得到可执行文件signalslot。命令行中输入:$ tmake o Makefile signalslot.pro(4) 启动虚拟控制台,运行signalslot 程序,将会得到如图 9.3 所示的结果,点击“Quit”按钮,程序将退出。$ ./signalslot qws4、dialog对话框编程步骤:(1) 进入/zylinux/x86-qtopia 目录,运行set-env 脚本,设置环境变量,然后创建文件夹dialog.。命令行中输入:$ cd /zylinux/x86-qtopia$ mkdir dialog(2) 进入dialog 目录,建立文件userdial

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号