ImageVerifierCode 换一换
你正在下载:

qt搭建.docx

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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

qt搭建.docx

1、qt搭建实验十三 QT图形界面相关实验一,实验目的完成这个实验后,您将具有以下能力: 熟悉如何在linux环境下安装qt和qte环境。 了解如何在Qt/E环境下使用qvfb显示程序结果 了解如何完成Qt/E的交叉编译环境并且运行程序二,基础知识进行本实验前,您应具有: C语言基础 Linux环境下vi编译器的使用 Makefile的编写和使用 Linux下的程序编译与交叉编译过程三,实验环境准备为了完成本实验,以下硬件条件是必需的: UP-NETARM2410-S嵌入式实验平台 PC机Pentium500以上,硬盘40G以上,内存128M以上为了完成本实验,以下软件条件是必需的: PC机操作系

2、统RedHat Linux 9.0 ARM-LINUX开发环境 使用QtDesigner软件环境 需要如下几个压缩包:qt-embedded-2.3.10-free.tar,qt-x11-2.3.2.tar,tmake-1.13.tar ,arm-linux-gcc-3.4.1.tar.bz2四,情景描述使用C语言编程、Makefile文件完成Qt图形界面相关实验五,实验基本原理1,QT介绍Qt是Trolltech公司的标志性产品,是一个跨平台的C+图形用户界面(GUI)工具包。Qt的最大特点就是支持多平台处理,因为Qt对不同平台的专门API进行了专门的封装。Qt特征 面向对象:Qt具有模块设

3、计和注重软件构件或元素的可重用行的特点 构件支持:Qt提供信号(signal)和插槽(slot)概念,这是一种类型安全的方法,它允许回调,并支持对象之间在彼此不知道对方信息的情况下进行合作,这使得Qt非常适合于真正的构件编程 友好的联机帮助:Qt提供了大量的联机参考文档,有超文本HTML方式,也有Unix帮助页man手册页和补充说明。并且对于初学者,其中的指南将一步步介绍如何进行Qt编程 便利性:由于Qt是一种跨平台的GUI工具包,它对编程者隐藏了在处理不同窗口系统时潜在的问题,Qt定义了一些类来隐藏在不同操作系统上不同处理方式下的细节问题 用户自定义:使用其他的一些工具包经常会遇到这样一种情

4、况,没有真正适合需求的组件,声称自定义的组件对用户来说就像一个黑匣子。而在Qt中生成用户自定义的组件非常简单,而且易于修改组件的行为 国际化:Qt为本地化应用提供了完全的支持,所有用户界面文本都可以基于消息翻译表被翻译成各国语言,Qt还支持双字节16bit国际字符标准 丰富的API函数:Qt为专业应用提供了大量的函数,在Qt的API中含有大约250个C+类,大多数的类都是GUI专有的 可用户化外观:Qt支持主题,基于Qt的应用程序能够在Windows外观、Motif外观,以及其它一些用户化外观主题之间切换 完整的一套组件工具:Qt编程的基本模块称之为组件,组件是用户界面的组成部分,Qt含有用来

5、创建专业外观的用户界面所需要的所有组件注:在第三个实验中,我们可以了解到QT的一些特征。关于QT的执行过程QT的执行过程如上图13.1所示:Qt应用程序在初始化之后,在Qt库的支持下响应相应的处理事件并且返回。该实现过程需要Qt最主要的三个基类:Qt的三个基类 QObjectQObject类是所有能够处理signal、slot和事件的Qt对象的基类,能够创建带有父对象及其名字的对象,对象的父对象可以看作为这个对象的所有者。 QApplicationQApplication类负责GUI应用程序的控制流和主要的设置,它包括主事件循环体,负责处理和调度所有来自窗口系统和其他资源的事件,并且处理应用程

6、序的开始、结束以及会话管理,还包括系统和应用程序方面的设置。该类具体子类如图13.2所示: QWidgetQWidget类是所有用户接口对象的基类,它继承了QObject类的属性。组件是用户界面的单元组成部分,它接收鼠标、键盘和其它从窗口系统来的事件,并把它自己绘制在盘屏幕上。QWidget类有很多成员函数,但一般不直接使用,而是通过子类继承来使用其函数功能。如,QPushButton、QlistBox等都是它的子类。具体子类如图13.3所示。QApplication和QWidget都是QObject类的子类。关于插槽机制在Qt程序中,事件处理的方式采用了信号(signal)和插槽(slot)

7、机制。信号和插槽机制的好处是不需要调用翻译表,节省资源。利用信号和插槽进行对象间的通信是Qt的最主要特征之一当对象状态发生改变的时候,发出signal通知所有的slot接收signal,尽管它并不知道哪些函数定义了slot,而slot也同样不知道要接收怎样的signal。signal和slot机制真正实现了封装的概念,signal和slot之间并不是一一对应的。如图13.4所示。显然,如图13.4可知:同一个信号可以连接到多个插槽,多个信号也可以连接到同一个插槽之中。随时可以建立一个连接,或者取消一个连接。不过取消一个连接不是很常用,因为当一个对象被删除后,它所包含的所有的连接都会被自动取消。

8、2,QtDesigner介绍Qt应用程序可以用Qt Desinger来编写。Qt Designer的功能十分强大,并且提供了大量可供编程使用的组件。如图13.5所示:Qt Designer的工作过程Qt Designer可以新建工程,并且在工程文件中自动生成关于窗体文件的.cpp、.h文件和main.cpp文件。其中.cpp文件和.h文件也可以通过uic工具生成。之后可以通过progen命令生成main.pro,以及通过tmake工具生成makefile文件,之后make即可得到相应的qt应用程序。Qt Designer功能框图六,估计完成实验需要时间:180分钟练习1使用QVFB运行基于x8

9、6的Qt运行环境目标了解安装Qt环境和Qt/Embedded环境的基本步骤。了解如何在Qt/E环境下使用qvfb显示程序结果。任务详细步骤1. 新建一个目录,将这个实验所需要用到的压缩包全部复制进去。新建一个目录,实验目录为/arm2410s/qt/1。并且准备好三个压缩包:qt-embedded-2.3.10-free.tar.gzqt-x11-2.3.2.tar.gztmake-1.13.tar.gz在实验目录下,进行如下命令检查。rootleio 1# pwd/arm2410s/qt/1rootleio 1# lsqt-embedded-2.3.10-free.tar.gz qt-x11

10、-2.3.2.tar.gz tmake-1.13.tar.gz2. 执行第一步:分别解压三个压缩包,并且配置环境变量1. 在实验目录下,使用vi新建step1文件2. 在文件step1中,编写如下信息,即解压压缩包并配置环境变量:rootleio 1# cat step1tar -xzf tmake-1.13.tar.gztar -xzf qt-x11-2.3.2.tar.gztar -xzf qt-embedded-2.3.10-free.tar.gzexport TMAKEDIR=$PWD/tmake-1.13export QT2DIR=$PWD/qt-2.3.2export QTEDIR

11、=$PWD/qt-2.3.10export PATH=$TMAKEDIR/bin:$PATH3. 完成编写之后,按住esc键之后,输入:wq保存退出。4. 运行这个文件,之后检查rootleio 1# source step1rootleio 1# echo $TMAKEDIR /arm2410s/qt/1/tmake-1.13rootleio 1# echo $QT2DIR /arm2410s/qt/1/qt-2.3.2rootleio 1# echo $QTEDIR /arm2410s/qt/1/qt-2.3.103. 执行第二步:编译Qt2.3.2a. 在实验目录下,使用vi新建step

12、2文件b. 在文件step2中,编写如下信息,即配置Qt2.3.2环境变量并配置编译:rootleio 1# cat step2cd $QT2DIRexport TMAKEPATH=$TMAKEDIR/lib/linux-g+export QTDIR=$QT2DIRexport PATH=$QTDIR/bin:$PATHexport LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH./configure -no-xftc. 完成代码的编写之后,按住esc键之后,输入:wq保存退出。d. 运行这个文件,配置内容选择yes和everything即可生成make

13、file文件 rootleio 1# source step2e执行make命令,并且将生成的/bin/uic文件复制到$QTEDIR目录下的bin目录中,如下所示:rootleio qt-2.3.2# makerootleio qt-2.3.2# cp bin/uic $QTEDIR/bin/ 覆盖原来的uic文件注意1:这步如果不完成,则qvfb无法正常编译。注意2:配置命令如下为 ./configure -no-xft,具体相关选项请见之后实验说明的配置编译信息的第一部分。4执行第三步:编译Qvfba. 在实验目录下,使用vi新建step3文件b. 在文件step3中,编写如下信息,即配

14、置Qvfb环境变量并配置编译:rootleio 1# cat step3export TMAKEPATH=$TMAKEDIR/lib/linux-g+export QTDIR=$QT2DIRexport PATH=$QTDIR/bin:$PATHexport LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATHcd $QTEDIR/tools/qvfb$TMAKEDIR/bin/tmake -o Makefile qvfb.proc. 完成代码的编写之后,按住esc键之后,输入:wq保存退出。d. 运行这个文件rootleio 1# source step3e

15、执行make命令,并且将生成的qvfb文件复制到$QTEDIR目录下的bin目录中,如下所示:rootleio qvfb# makerootleio qvfb# cp qvfb $QTEDIR/bin/ 覆盖原来的文件mv:是否覆盖/arm2410s/qt/1/qt-2.3.10/bin/qvfb? yes注意:qvfb模拟在开发板中运行的情况,一般来说如果在qvfb上运行没有问题的话,通过交叉编译在开发板上运行也没有问题。5. 执行第四步:编译Qt/Embeddeda. 在实验目录下,使用vi新建step4文件b. 在文件step4中,编写如下信息,即配置Qvfb环境变量并配置编译:root

16、leio 1# cat step4cd $QTEDIRexport TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g+export QTDIR=$QTEDIRexport PATH=$QTDIR/bin:$PATHexport LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH./configure -no-xft -qvfb -depths 4,8,16,32c. 完成代码的编写之后,按住esc键之后,输入:wq保存退出。d. 运行这个文件,配置内容选择yes和everything即可生成makefile文件 rootleio

17、 1# source step4e执行make命令,如下所示:rootleio qt-2.3.10#make注意:配置命令如下为 ./configure -no-xft -qvfb -depths 4,8,16,32,具体相关选项请见之后实验说明的配置编译信息的第二部分。如果顺利的话,到此为止,qvfb/Qt/embedded环境建立完成。6. 使用程序自带的demo进行测试rootleio 1# cd $QTEDIR/examples/launcherrootleio launcher# qvfb width 640 height 480 &sleep 10之后会启动qvfb虚拟器,直接输入

18、launcher命令运行:rootleio launcher# launcher qws之后即可看到图13.7所示,则环境搭建成功。图13.77. 自己写一个测试程序运行。a. 新建一个目录evahello,并在其中编写hello.cpp程序:rootleio 1# cd $QTEDIR/examplesrootleio examples# mkdir evahellorootleio examples# cd evahellorootleio evahello# vi hello.cppb. hello.cpp输入如下代码,并且保存退出#include #include int main(i

19、nt argc , char *argv)QApplication app(argc , argv);QLabel *hello=new QLabel(HelloWorld!,0);app.setMainWidget(hello);hello-show();return app.exec();c. 检查TMAKEPATH和QTDIR环境变量是否如下所示:rootleio evahello# echo $TMAKEPATH /arm2410s/qt/1/tmake-1.13/lib/qws/linux-x86-g+rootleio evahello# echo $QTDIR /arm2410s/

20、qt/1/qt-2.3.10d. 都没有问题之后,使用如下命令生成hello.pro工程文件rootleio evahello# progen -t app.t -o hello.proe. 使用如下命令生成makefile文件rootleio evahello# tmake -o Makefile hello.prof. 使用make命令执行生成可执行文件hellorootleio evahello# make8运行qvfb,执行自己写的测试程序结果rootleio evahello#qvfb &sleep 10rootleio evahello# ./hello -qws如果程序运行成功即

21、可看到图13.8所示:图13.8实验说明1. 配置编译信息(1)Qt2.3.2的配置编译信息rootleio qt-2.3.2# ./configure -help./configure: line 1: -f: command not foundUsage: ./configure -debug -release -shared -static -gif -no-gif -sm -no-sm -thread -no-thread -qt-zlib -system-zlib -qt-libpng -system-libpng -no-jpeg -system-jpeg -no- -kde -I

22、string -Lstring -Rstring -lstringThe defaults (*) are usually acceptable. Here is a short explanation ofeach option:* -release . Compile and link Qt with debugging turned off.-debug . Compile and link Qt with debugging turned on.* -shared . Create and use a shared Qt library (libqt.so)-static . Crea

23、te and use a static Qt library (libqt.a)* -no-gif . Do not compile in GIF reading support.-gif . Compile in GIF reading support. See src/kernel/qgif.h-no-sm . Do not support X Session Management.* -sm . Support X Session Management, links in -lSM -lICE.* -no-thread . Do not compile with Threading Su

24、pport-thread . Compile with Threading Support* -qt-zlib . Use the zlib bundled with Qt.-system-zlib . Use a zlib from the operating systemhttp:/www.info-zip.org/pub/infozip/zlib* -qt-libpng . Use the libpng bundled with Qt.-system-libpng . Use a libpng from the operating system.See http:/www.libpng.

25、org/pub/png* -no-mng . Do not compile in MNG I/O support.-system-libmng . Use libmng from the operating system.See * -no-jpeg . Do not compile in JPEG I/O support.-system-jpeg . Use jpeglib from the operating system.See http:/www.ijg.org* -no-nas-sound . Do not compile in NAS sound support.-system-n

26、as-sound . Use NAS libaudio from the operating system.See -no- . Disables a module, where module cancan be one of: opengl table network canvas-kde . Builds the Qt Designer with KDE 2 support, so thatKDE 2 widgets can be used directly inthe Qt Designer. $KDEDIR must beset to point to a KDE 2 installa

27、tion.See http:/www.kde.org-no-g+-exceptions . Disable exceptions on platforms using the GNU C+compiler by using the -fno-exceptions flag.-no-xft . Disable support for Anti-Aliased fonts through theXft extension library (XFree86 4.0.2 and newer).-xft . Enable support for Anti-Aliased fonts.Xft suppor

28、t is auto-detected, but you may use theseflags to explicitly enable/disable support.-platform target . The platform you are building on (linux-g+)-xplatform target . The platform when cross-compiling.See the PLATFORMS file for a list of supportedoperating systems and compilers.-Istring . Add an expl

29、icit include path.-Lstring . Add an explicit library path.-Rstring . Add an explicit dynamic library runtime search path.-lstring . Add an explicit library.Qt/Embedded only:-qconfig local . Use src/tools/qconfig-local.h rather than thedefault (qconfig.h).-depths list . Comma-separated list of supported bit-per-pixeldepths, from: v, 4, 8, 16, 24, and 32. v is VGA16.-accel-voodoo3 . Enable Voodoo3 acceleration.-accel-mach64 . Enable Mach64 acceleration.-accel-matrox . Enable Matrox

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1