ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:755.71KB ,
资源ID:10301765      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-10301765.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式1.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

嵌入式1.docx

1、嵌入式1嵌入式系统设计实验报告 专业班级:09通信工程2班姓 名:学 号:实验日期:2012年11月2日指导老师:实验:基于linux系统QT图形界面的简单开发一 实验目的:1熟悉如何在LINUX环境下安装QT环境。2.了解如何在QT环境下进行图形界面的编程与开发。二实验背景:Qt 是用来开发多平台 GUI 和应用程序的 C+ 工具包。它除了提供 C+ 类库之 外,还提供了很多工具,使得开发更加快速容易。Qt 支持多平台和国际化。因此,Qt 开 发出来的程序有更强的适应性。 Qt C+工具包自从 1995 年开始就已经成为许多商业软件的核心。Qt 被很多公司使 用,如:AT&T, IBM, N

2、ASA, Xerox 和其他的一些小公司和组织。在保持易用性和强 大功能的前提下,Qt 3.1 增加了很多重要的函数和新的类。Qt 的类尽可能的降低开发者 的工作量,并且提供统一的接口以利于学习,Qt 是完全面向对象的。1 、Qt 概要 Qt 包含了丰富的部件(在 Windows 术语中叫控件),这些部件提供了一些标准的功 能。Qt 引进了一种创造性的内建对象通信机制-信号和槽,来代替过去不安全的回调技 术。Qt 还提供了传统的事件模型来处理鼠标按下,键盘敲击等事件。Qt 多平台应用可以 使用现代程序设计需要的所有用户界面功能,如:菜单,上下文菜单, 拖放, 和 可停 靠工具栏等。 直观的命名

3、规则和统一的设计方法简化了程序的设计。Qt 提供了一个视觉化的用户 界面设计工具-Qt Designer。 它支持 Qt 强大的布局功能。 它可以用来设计 GUI 或者 通过 内建的 C+ 代码编辑器创建一个完整的程序。Qt 可以很好的支持二维和三维的图形。它是平台无关 OpenGL 设计 GUI 工具包的事 实标准。 Qt 可以使用标准的数据库创建平台无关的数据库应用。 它内建了很多数据库的驱动, 如:Oracle, Microsoft SQL Server, Sybase Adaptive Server, PostgreSQL, MySQL, 和 ODBC-compliant 等。Qt D

4、esigner 完全整合了 Qt 的数据库功能,因此它可以提供数据库 资料预览。包含了数据库的 Qt 相关部件, 内建和自定制的部件都可以增加数据感知功能。 利用 Qt 的风格和主题,Qt 在很多支持的平台上具有本地外观。一份源代码,只需 要重新编译就可以运行于 Windows(95, 98, NT4, ME, 2000, XP), Mac OSX, Linux, Solaris, HP_UX 和其他支持 X11 的各种 Unix 系统。 程序也可以运行于嵌入 Qt 的系统。 Qt Qt 的 qmake 工具可以生成于目标平台相适应的 makefiles 或者.dsp 文件。 许多用户在单一平

5、台下使用 Qt 开发,如:Windows, Mac OS X 和 Unix 系统。既然 Qt 的体系结构利用了平台底层的属性,所以它在特定的平台下会支持该平台特有的属性, 例如:在 Windows 下支持 ActiveX, 在 Unix 下支持 Motif 。 Qt 使用 Unicode 并且提供了大量的国际化支持。Qt 提供 QtLinguist 和 其它的一些 工具来支持翻译。 应用程序的文本可以很容易的使用和混合许多 Unicode 支持的语言, 如: 阿拉伯文,中文,英文,希伯莱文,日文,俄文等。 Qt 为许多特定的领域提供了特定的类。 例如: XML 模块包括了 SAX 和 DOM

6、解析 器。通过使用与 STL 兼容的 Qt 集成类,对象可以保存在内存中。通过标准的协议,Qt 的 输入输出和网络类支持本地和远程的文件处理。 通过使用插件和动态库,Qt 应用程序可以扩展他们的功能。插件提供了额外的解码 器,数据库驱动,图像格式,风格和部件等。动态库可以提供没有范围约束的功能。这些 插件和动态库作为产品来出售。 Qt 是一个被广泛使用的成熟的 C+工具包。除了在商业上的应用之外,免费版本的 Qt 还是 Linux 桌面环境的基础。 的多平台开发系统, Qt 视觉化的开发方式, 和高效的 API 将使得应用程序的开发更轻松,更具有乐趣。2 、部件 Qt 具有一系列丰富的部件(按

7、钮,卷轴等)可以满足很多应用。如果有特殊的需要,你可以很容易和灵活派生出子类。 Qt 提供了很多部件。所谓部件就是一个视觉元素,它们做和在一起来构成用户界面。按钮,菜单,卷轴,消息窗口和应用程序窗口都是部件的例子。Qt的部件并不严格区分控件和容器;所有的部件即可以用作控件有可以用作器。通过继承现有的Qt 部件可以很容易的定制自己的部件。当然在极少数情况下,为了特殊的应用,有可能要重头开始创建自己的部件。 部件是QWidget,它的子类或者由这些子类创建的自定制类的实例。一个部件可以包含很多子部件。这些子部件显示在父部件的区域内。一个没有父部件的部件我们称之为顶层部件(如一个窗口),它一般会在桌

8、面环境的任务栏上占据一个位置。任何部件都可以使顶层部件,任何部件都可以成为其他部件的子部件。布局管理器会自动的安排子部件在父部件区域中的位置,当然你也可以手动来安排。当父部件无效,隐藏或者被删除的时候,这些动作也会影响相应的子部件。 标签,消息框,工具提示等可以使用不止一种的颜色,字体和语言。例如:通过使用HTML 的子集,Qt 的文本部件就可以显示多语种的文本。3 .信号和槽 Qt 的内部对象通讯使用信号和槽机制。信号和槽机制很容易理解和使用,并且被Qt Designer 支持。 GUI 程序需要相应用户的动作。例如,当用户点击一个菜单项或者工具栏按钮的时候,程序就会执行相应的代码。一般情况

9、下,我们希望任何类型的对象之间可以互相通讯。编程人员需要把相应的事件和代码联系起来。以前的工具包使用了一种回调机制,这种机制不是类型安全的,它不够强壮并且不是面向对象的。 Trolltech 提出了“信号和槽”的解决方案。它是一种强大的内部对象通讯机制,可以完全代替以前工具包使用的回调和Message Maps机制。信号和槽非常灵活,完全面向对象并且是使用 C+来实现的。 使用以前的回调机制,为了把一个按钮和一段执行代码联系起来,则必须给这个按钮传递一个函数指针。这样,当这个按钮被按下时,这个函数就会被调用。但是以前的工具包并不保证传给这个函数的参数类型是正确的,这样就很容易发生问题。此外,回

10、调机制把一个GUI 元素和一个函数紧密的联系在一起,这样就很难独立的开发一个类。Qt的信号和槽却不同,当一个事件发生时,Qt部件会发送一个信号。例如,当一个按钮被按下的时候,它就可能发送clicked 信号。编程人员可以创建一个函数(槽)并调用connect() 函数把这个槽和信号联系起来。Qt 的信号和槽机制并不要求一个类知道另一个类的信息,因此我们可以开发出高度可重用的类。信号和槽是类型安全的,当类型不匹配的时候,它会给出警告。例子,假设把退出按钮的clicked() 信号和程序的quit()槽联系在一起,那么当用户点击退出按钮将终止程序。代码可能如下: connect(button,SI

11、GNAL(clicked(),qApp,SLOT(quit() ); 信号和槽之间的联系可以在程序运行期间动态的添加和删除。 信号和槽的实现扩展了C+ 语法并且充分利用了 C+ 的面向对象的性质。信号和槽是类型安全的,可以重载或者重新实现,而且它们在类中可以定义为公有的,保护的或者私有的。 4.GUI 程序 用Qt可以既快速又容易的创建 GUI 程序,你可以手工编写代码也可以通过视觉化的编程工具Qt Designer 来生成。Qt 提供了创建GUI 程序所需的所有类和函数。你可以使用Qt 来创建带有菜单,工具栏和状态栏的基于视窗的程序,也可以创建带有按钮和标签的基于对话框的程序。Qt支持单文档

12、界面(SDI )和多文档界面(MDI )。此外,Qt 也支持拖放和剪贴。 工具栏可以在其范围内任意移动,拖放到其他地方或者处于飘浮状态。这些功能是内建的,你不需要添加额外的代码。当然,如果需要你可以改变它的性质。 Qt 简化了程序的设计。例如:如果菜单项,工具按钮和快捷键执行同一个动作,那么这个动作的实现代码可以只要一份。 Qt 还提供了消息框和一系列的标准对话框来与用户交互。如:选择文件,文件夹,字体和颜色等。实际上,你有可能只是简单的使用Qt 的一个语句就可以实现这个功能。三实验环境:CentOS 6.0,QT designer软件环境qt-everywhere-opensource-sr

13、c-4.7.4四 实验内容及步骤:1.在windows下安装虚拟机,然后使用虚拟机安装CentOS 6.0。安装CentOS的时候,需要将系统定制安装,把开发需要的软件包都选择,然后进行安装。2.打开安装好的虚拟机,登录图形化界面,使用管理员模式登录,因为开发QT图形界面时需要较高权限。3.因为安装时选择了开发的软件包,CentOS自带有QT3以及简易的QT4 designer(之后再安装QT4)。4.打开终端,建立一个实验目录,进入该目录建立qt实验目录#mkdir shiyan#cd shiyan/#mkdir qt1#cd qt1/5.在该目录下使用VI编辑器进行图形界面的编程,在一个窗

14、口中建立一个按键部件,一个滑动器部件,一个LCD数字显示部件。#vi main.cpp键入如下程序: #include #include #include #include #include class MyWidget : public QVBox public: MyWidget( QWidget *parent=0, const char *name=0 ); ; MyWidget:MyWidget( QWidget *parent, const char *name ) : QVBox( parent, name ) QPushButton *quit = new QPushButto

15、n( Quit, this, quit ); connect( quit, SIGNAL( clicked (), qApp, SLOT(quit () ); QLCDNumber *lcd = new QLCDNumber ( 2, this, lcd ); QSlider * slider = new QSlider( Horizontal, this, slider ); slider- setRange ( 0, 99 ); slider- setValue( 0 ); connect( slider, SIGNAL(valueChanged (int), lcd, SLOT(disp

16、lay (int) ); int main( int argc, char *argv ) QApplication a( argc, argv ); MyWidget w; a.setMainWidget( &w ); w. show(); return a. exec (); 解释:qslider.h和qlcdnumber.h在这里是因为使用了滑动器和LCD数字显示部件,QSlider和QLCDNumber 。qvbox.h在这里是因为使用了Qt的自动布局支持。Widget是窗口部件QpushButton是按键QLCDNumber是LCD数字显示Qslider是滑动器这里涉及到QT的插槽机

17、制,Qt 的内部对象通讯使用信号和槽机制。信号和槽机制很容易理解和使用,并且被 Qt Designer 支持。GUI 程序需要相应用户的动作。例如,当用户点击一个菜单项或者工具栏按钮的时 候, 程序就会执行相应的代码。 一般情况下, 我们希望任何类型的对象之间可以互相通讯。 编程人员需要把相应的事件和代码联系起来。 以前的工具包使用了一种回调机制, 这种机 制不是类型安全的,它不够强壮并且不是面向对象的。 Trolltech 提出了“信号和槽”的解决方案。它是一种强大的内部对象通讯机制,可 以完全代替以前工具包使用的回调和 Message Maps 机制。信号和槽非常灵活,完全面向 对象并且是

18、使用 C+来实现的。 使用以前的回调机制,为了把一个按钮和一段执行代码联系起来,则必须给这个按 钮传递一个函数指针。这样,当这个按钮被按下时,这个函数就会被调用。但是以前的工 具包并不保证传给这个函数的参数类型是正确的,这样就很容易发生问题。此外,回调机 制把一个 GUI 元素和一个函数紧密的联系在一起,这样就很难独立的开发一个类。Qt 的信号和槽却不同,当一个事件发生时,Qt 部件会发送一个信号。 例如,当一 个按钮被按下的时候,它就可能发送clicked信号。编程人员可以创建一个函数(槽)并 调用 connect()函数把这个槽和信号联系起来。Qt 的信号和槽机制并不要求一个类知道另 一个

19、类的信息,因此我们可以开发出高度可重用的类。信号和槽是类型安全的,当类型不 匹配的时候,它会给出警告。例子,假设把退出按钮的 clicked()信号和程序的 quit()槽联系在一起,那么当用户点 击退出按钮将终止程序。代码可能如下: connect( button, SIGNAL(clicked(), qApp, SLOT(quit() ); 信号和槽之间的联系可以在程序运行期间动态的添加和删除。信号和槽的实现扩展了 C+语法并且充分利用了 C+的面向对象的性质。信号和槽 是类型安全的,可以重载或者重新实现,而且它们在类中可以定义为公有的,保护的或者私有的。利用这个机制,我把按键信号与退出信

20、号连在一起,把滑动器的滑动信号与LCD数字显示的显示信号连在一起,然他们能彼此联系。滑动器滑动能使LCD的数字从0到99变动,点击按键可以使窗口退出,也就是关闭。6.程序键入完成之后,保存退出,这样在这个文件夹里就有一个main.cpp7.使用QT进行编译,键入qmakeproject会出现一个.pro文件,然后键入qmake会出现一个Makefile文件 8.然后用make命令,会出现一个可执行文件。 9.执行这个可执行文件./qt1。 10.拖动滑动器,LCD数字会发生相应的改变。到此,使用QT3来简单开发图形界面就已经完成了。但是使用QT4,在图形界面下使用其QT4 Designer开发

21、软件,会使开发变得更简单。11.首先得安装QT4的源码包:qt-everywhere-opensource-src-4.7.4.tar #tar vxzf qt-everywhere-opensource-src-4.7.4.tar 解压软件包: #cd qt-everywhere-opensource-src-4.7.4 进入安装目录: #./configure 默认配置: #make #makeinstall 安装软件包: 安装需要几个小时的时间,安装完成之后,需要修改配置文件。 #env显示环境变量:由于我安装QT4的时候是默认安装,安装路径是/usr/local/Trolltech/q

22、t-4.7.4-pc/,所以用export命令将一些环境变量改成这个目录就行,比方:export QTDIR= /usr/local/Trolltech/qt-4.7.4-pc/。之后在图形化界面applicationsprogrammingQT4 designer。之后选择Widget,在窗口中添加按键部件,滑动器部件,LCD显示部件。修改按键名称,以及建立插槽信号联系。我把点击pushbutton的信号付给框体,框体的反应信号时关闭。再把slider的拖动信号付给lcdnumber的显示信号。如上图红方框显示。然后退出再保存为qt1.ui的文件,我保存在实验目录下:再建立一个main.cp

23、p的文件,用VI编辑器进行编辑:#include ui_qt1.h int main(int argc, char *argv) QApplication app(argc, argv); QWidget *widget = new QWidget; Ui:Form ui; ui.setupUi(widget); widget-show(); return app.exec(); 然后目录下会出现一个main.cpp文件:然后使用:#qmake project#qmake#make 会产生一个可执行文件,用./qt1执行:移动滑动器,观察lcd显示器的变化:五实验总结:通过两个周末在实验室里的学习,学习使用熟悉如何在LINUX环境下安装QT环境,了解如何在QT环境下进行图形界面的编程与开发,进一步加强了对嵌入式的熟悉和了解。张老师在兢兢业业的向我们传授实践知识的同时也向我们提问相关理论问题,让我们在学习的过程加深对实践和理论两者之间的联系,知道每一个步骤的发生的原因及产生相应的结果,即对实验的来龙去脉有了更清楚的认识,为今后的学习打下了一定的基础。相信在接下来的实验中,我们会在张老师的引导下,做起实验来更能得心应手,轻车熟驾!

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2