QT完全手册Word下载.docx
- 文档编号:17778048
- 上传时间:2022-12-10
- 格式:DOCX
- 页数:35
- 大小:35.36KB
QT完全手册Word下载.docx
《QT完全手册Word下载.docx》由会员分享,可在线阅读,更多相关《QT完全手册Word下载.docx(35页珍藏版)》请在冰豆网上搜索。
Qtopia平台安装分为以下几个步骤:
1.解包Qtopia
在Linux命令模式下运行以下命令:
tarxfzqtopia-source-1.6.0(解包)
cdqtopia-source-1.6.0
exportQPEDIR=$PWD(设置环境变量)
cd..
2.安装Tmake
tarxfzTMAKEDIR=$PWD/tmake-1.11
exportTMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
exportPATH=$TMAKEDIR/bin:
$PATH
3.安装Qt/Embedded2.3.4
tarxfzqt-2.3.4
exportQTDIR=$PWD
exportQTEDIR=$QTDIR
exportPATH=$QTDIR/bin:
exportLD_LIBRARY_PATH=$QTDIR/lib:
$LD_LIBRARY_PATH
cp$QPEDIR/src/qt/qconfig-qpe.hsrc/tools/
./configure-qconfigqpe-qvfb-depths4,8,16,32
makesub-src
也可以在configure的参数中添加-system-jpeg和gif,使Qtopia平台能支持jpeg、gif格式的图形。
4.安装Qt/X112.3.2
tarxfzqt-2.3.2
./configure-no-opengl
make
make-Ctools/qvfb
mvtools/qvfb/qvfbbin
cpbin/uic$QTEDIR/bin
根据开发者本身的开发环境,也可以在configure的参数中添加别的参数,比如-no-opengl或-no-xfs,可以键入./configure-help来获得一些帮助信息。
5.安装Qt/X113.1.2
tarxfzqt-x11-commercial-3.1.x
exportQT3DIR=$QTDIR
./configure-thread
6.安装Qtopia
cdqtopia-source-1.6.x
exportQTDIR=$QTEDIR
exportQPEDIR=$PWD
exportPATH=$QPEDIR/bin:
cdsrc
./configure
cd../..
7.安装Qtopia桌面
cdQTDIR=$QT3DIR
./configure-qtopiadesktop
mvqtopiadesktop/bin/qtopiadesktop../bin
Qt和QtDesigner的使用
根据上面的步骤安装完成了Qt/Embedded和Qtopia之后,就可以运行这些程序了。
运行Qt的虚拟仿真窗口:
在Linux的图形模式下运行命令qvfb&
;
Qtopia只是一个用Qt/Embedded开发的程序,运行Qtopia,在图形模式下运行命令:
exportQTDIR=$QTEDIR,
qpe&
这样Qtopia的程序就运行在QVFB上,即Qt的虚拟仿真窗口。
Qt/Embedded是针对嵌入式Linux而开发的一种开发工具,Qt封装了一些常用的类,而且这些类的名字都以Q字开头命名,如QString、QDialog等。
这里主要介绍一下如何利用QtDesigner来设计组件,并生成相应的代码。
在Qt中,把组件分为复合体、原始体和配件。
而在Qt中,组件是由一些抽象类、复杂的组件类、管理组件几何特性的类等组成。
Qt中有三个主要的基类:
QObject、Qapplication和QWidget。
在Qt中编程,利用Signal和Slot进行对象之间的通信是Qt的主要特征。
它与Windows中的消息机制非常类似,但是Signal和Slot机制真正实现了一种消息的封装。
当对象的状态改变时,发出Signal,通知所有的Slot接受Signal,尽管它不知道哪些函数是Slot,Slot一开始也不知道哪些Signal可以接收。
Signal和Slot之间不是一一对应的关系,一个Signal可以发给多个Slot,Slot也可以接收多个Signal。
Slot除了可以接收Signal以外,与其它的成员函数没有区别。
这种机制比使用回调函数要灵活,但是会减慢程序的运行速度。
不过在现在高速CPU的面前,这种损失是无足轻重的,而且它还能保证程序的简明性和灵活性,非常便利。
在Qt的组件中,不仅定义了常用的成员变量和成员函数,还定义了所有与该组件相关的Signal和Slot。
要将组件组合起来,最简单的方法就是使用QtDesigner。
首先要启动QtDesigner,在Linux命令模式下,键入以下命令(假设Qt安装在/usr/local下):
cd
然后新建一个QFrame,将自己需要的组件直接拖拉到这个Frame中,相信很多人都有过这样的经历,此处就不再详细描述了。
完成之后存盘时,会将这个新的组件保存为一个扩展名为.ui的文件。
假设所存的文件名为test.ui,用vitest.ui来查看这个文件,发现这是一个用xml语言写的一个文本。
下面用这个test.ui生成相应的test.h和test.cpp。
同样还是在这个目录下,可以看到一个uic的工具,这个是Qt专门用来将ui文件生成.h和.cpp文件的,在终端模式下键入以下命令:
./uic-otest.htest.ui
./uic-otest.h-itest.cpptest.ui
此时就能看到生成了相应test.h和test.cpp,这是一个类。
当然这只是一些表面的东西,还需要在这些代码中添加相应的Signal和Slot,完成所需要的操作。
值得注意的是,相应版本生成的ui最好用相应版本的uic来生成代码。
如果用Qt
在一般的开发过程中,首先通过这个ui生成的一个类,在Qt中通常叫做Base,如上面的例子,叫做testBase;
然后再新建一个类,来继承这个Base。
通常叫做实现类Impl,如testImpl。
在这个实现类里面定义所需要的成员函数、Signal和Slot,因为ui可能是经常需要改动的。
如果这样做,每次只需要在Designer中修改ui,而不用去理会这些成员函数、Signal和Slot了。
编译一个Qt程序必然需要Makefile,在Qt中提供了一个专门生成Makefile的工具,就是tmake。
用tmake需要根据编写的程序写一个.pro文件。
.pro文件非常简单,有固定的格式,下面是一个例子:
TEMPLATE=app
CONFIG=qtopiawarn_onrelease
MOC_DIR=tmp
OBJECTS_DIR=tmp
HEADERS=fcrs.h\
structs.h\
globalfunc.h\
globalvars.h\
testimpl.h
SOURCES=main.cpp\
globalfunc.cpp\
globalvars.cpp\
testimpl.cpp
INTERFACES=test.ui\
TARGET=fcrs
生成这个.pro文件之后,在终端中键入下面的命令:
tmake-oMakefiletest.pro
就自动生成了一个Makefile,使用这个Makefile编译所编写的程序就可以了。
Qt/Embedded开发环境建立的过程
Qt/Embedded开发环境建立的过程:
(这些软件可以免费从trolltech的WEB或FTP服务器上下载)
◆tmake1.11或更高版本;
(生成Qt/Embedded应用工程的Makefile文件)
◆Qt/Embedded2.3.7(Qt/Embedded安装包)
◆Qt2.3.2forX11;
(Qt的X11版的安装包,它将产生x11开发环境所需要的两个工具)
1、安装tmake
2.安装Qt/Embedded2.3.7
tarxfzqt-2.3.7
./configure-qconfig-qvfb-depths4,8,16,32
上述命令./configure-qconfig-qvfb-depths4,8,16,32指定Qt嵌入式开发包生
成虚拟缓冲帧工具qvfb,并支持4,8,16,32位的显示颜色深度。
另外我们也可以在
configure的参数中添加-system-jpeg和gif,使Qt/Embedded平台能支持jpeg、gif
格式的图形。
上述命令makesub-src指定按精简方式编译开发包,也就是说有些Qt类未被编
译。
Qt嵌入式开发包有5种编译范围的选项,使用这些选项,可控制Qt生成的库文件的大
小,但是您的应用所使用到的一些Qt类将可能因此在Qt的库中找不到链接。
编译选项的具
体用法可运行./configure-help命令查看。
3.安装Qt/X112.3.2
根据开发者本身的开发环境,也可以在configure的参数中添加别的参数,比如
-no-opengl或-no-xfs,可以键入./configure-help来获得一些帮助信息。
如果Qt/Embedded的应用是在UNIX平台下开发的话,那么它就可以在开发的机器
上以一个独立的控制台或者虚拟缓冲帧的方式来运行,对于后者来说,其实是有一个X11
的应用程序虚拟了一个缓冲帧。
通过指定显示设备的宽度,高度和颜色深度,虚拟出来
的缓冲帧将和物理的显示设备在每个像素上保持一致。
这样每次调试应用时开发人员就
不用总是刷新嵌入式设备的FLASH存储空间,从而加速了应用的编译、链接和运行周期。
运行Qt的虚拟缓冲帧工具的方法是:
在Linux的图形模式下运行命令:
qvfb(回车)
当Qt嵌入式的应用程序要把显示结果输出到虚拟缓冲帧时,我们在命令行运行这
个程序时,在程序名后加上-qws的选项。
例如:
$>
hello-qwsLIB环境,具体方法如下:
[root@localhosttmake-1.8]#exportTMAKEDIR=$PWD
[root@localhosttmake-1.8]#exportTMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
[root@localhosttmake-1.8]#exportPATH=$TMAKEDIR/bin:
[root@localhostexportQTDIR=$PWD
[root@localhostQTEDIR=$QTDIR
[root@localhostPATH=$QTDIR/bin:
[root@localhostLD_LIBRARY_PATH=$QTDIR/lib:
2.如果你是用DESIGNER工具设计的界面(后面有讲),则要将*.ui文件转换成*.h文件和*.cpp文件。
转换方法如下:
uic–otest.htest.ui
uic–otest.cpp–itest.htest.ui
3.编写一个*.pro文件(用来生成Makefile文件用),该文件格式比较固定。
如test.pro文件基本格式如下(以test.cpp,test.hmain.cpp为例子):
EMPLATE=app
CONFIG+=qtwarn_onrelease
HEADERS=test.h
SOURCES=test.cpp\
main.cpp
TARGET=–oMakefiletest.pro
5编译生成可执行文件
6打开QVFB
进入安装QT/X11所在目录,在BIN目录下执行程序qvfb。
有时候需要修改qvfb执行时的deptb参数才能够执行QT/E程序。
可以直接在QVFB打开窗口的Configure彩单项中选择,也可以用如下命令执行QVFB。
./qvfb–width**-height**-depth**
7.执行QT/E程序
如。
/TEST
在QVFB程序打开的窗口中将出现TEST程序的显示。
四.Qt/e与QT/X11
安装QT/E的同时还需要安装QT/X11与Tmake,Tmake是用来帮助生成Makefile文件的。
安装QT/X11主要是向QT/E提供designer工具和qvfb工具的。
Designer可以用来设计图形界面,最后生成.ui文件,可通过UIC命令转换为相应的C++文件。
QVFB模拟帧缓冲,提供QT/E程序的显示平台。
五.QT/E程序ARM板上执行
在我虚拟机上可以执行的QT/E程序不能在ARM板上执行,需要对QT/E进行重新编译,并需要设置响对于ARM板系统的编译环境,具体方法可以参考我另外的一文《QT/E开发记录》
六.QT/E支持中文显示问题
QT/E需要字体转换才能显示中文。
具体方法可以参考我另外的一文《QT/E开发记录》
但是由于缺少UNICODE的QPF文件的字体,中文字大小不均匀问题尚没解决。
七QT/E的一些参考资料:
QT中文论坛
(关于QT3的类,以及类函数可以在这寻找)
提供QT3编程最好书籍的电子版本《C++GUIProgrammingwithQT3》(本机)
关于QT4可以参考QTASSISTNAT(本机中),另外QTASSISTNAT中也可以查找QT3的类及库等。
设置Qtopia的build环境
1、环境变量
在目标系统上buildQtopia必须设定必要的环境变量,如QTDIR,如果依赖多个版本的Qt,则需要用环境变量指向用到的库配置。
一种方法是将环境变量的设定写入文件,通过运行source命令应用文件的内容。
举例说明:
Linux/bash下建立环境变量设定文件qtopia.sh,内容如下:
exportQPEDIR=/opt/Qtopia
exportQTDIR=/opt/Qtopia
exportTMAKEPATH=/opt/Qtopia/tmake/lib/qws/linux-generic-g++
需要时运行sourceqtopia.sh即可应用以上环境变量。
另外也可以通过在.bashrc文件中设定别名来应用这些环境变量。
假设环境变量设置文件存放在home目录的bin下,则可在.bashrc中加入:
aliasqtopia='
source~/bin/qtopia.sh'
2、创建自定义的配置文件
整个Qtopia系统在build过程中需要三个独立的配置系统:
1)Qt/Embedded配置文件
2)tmake-用于buildQtopia1.x和一些第三方软件
3)qmake-用于buildQtopia2及以上版本
在buildQtopia以前,先要完成以上三项的配置。
下面是创建一个“myarm”配置的例子:
cp-r$TMAKEDIR/lib/qws/linux-arm-g++$TMAKEDIR/lib/qws/linux-myarm-g++
cp-r$QTEDIR/configs/linux-arm-g++-shared$QTEDIR/configs/linux-myarm-g++-shared
cp-r$QPEDIR/mkspecs/qws/linux-arm-g++$QPEDIR/mkspecs/qws/linux-myarm-g++
Qt/Embedded
编辑$QTEDIR/configs/linux-myarm-g++-shared,修改其中的utilities和flags成适合系统的内容,如:
可能需要修改SYSCONF_CXX,SYSCONF_CC和SYSCONF_LINK,指定正确的编译器.可能需要增加编译选项-DMYARM,在代码中增加宏#ifdefMYARM(用以增加设备相关的代码)
tmake
编辑$TMAKEDIR/lib/qws/linux-myarm-g++/tmake.conf,修改用到的utilites和flags:
可能需要修改TMAKE_CC,TMAKE_CXX和TMAKE_LINK
可能需要增加-DMYARM选项
qmake
修改$QPEDIR/mkspecs/qws/linux-myarm-g++/qmake.conf:
QMAKE_CC,QMAKE_CXX和QMAKE_LINK
-DMYARM
注意:
qmake.conf的最后一行必须是:
exists($$(QPEDIR)/src/config.pri):
include($$(QPEDIR)/src/config.pri)
可用于目录名的字符
正则表达式字符
Qtopia2.0.0-build系统访问到的任何目录都不能包含正则表达式字符
任何能被QRegExp识别的特殊字符和字符序列都可能引起问题
'
.'
字符只匹配自身
不要将正则表达式字符用于目录名,包括(但不仅限于):
+.*\()[]^${}
注:
Qtopiabuild系统不支持目录名中包含空格。
必须保证:
build系统访问到的目录不包含空格
访问目录的各层上级目录也不包含空格
Qtopia的依赖和必要条件
简介
为了使Qtopia正确运行,kernel提供共享内存、mmap和socket支持
Linux支持framebuffer
Linux支持OSS声音或支持与OSS兼容的ALSA声音。
进一步的信息参考TheQtopiaA/V&
AppearanceFAQ
还需要以下的库:
Video4Linux
zlib
libuuid(akaluuid)
libjpeg
xorg或X11
Freetype不是必须的但建议支持
支持的编译器和交叉编译器
gcc-2.95.2
gcc3.2.4
gcc-3.3.0,gcc-3.3.3,gcc-3.3.4
gcc-3.4.1
声音
Qtopia需要/dev/dsp可写,并支持以下的ioctl操作:
SNDCTL_DSP_SETFRAGMENT-Qtopia将这个值设置为0x4000c.
SNDCTL_DSP_SETFM-Qtopia设置为AFMT_S16_LE
SNDCTL_DSP_STEREO-Qtopia设置为1/true.
SNDCTL_DSP_SPEED-Qtopia设置为44100.
SNDCTL_DSP_GETOSPACE
Qtopia还需要/dev/dsp可以以阻塞方式和非阻塞方式打开。
以上的设定是Qtopia需要的设定,但可以容许少许的偏差,但如果不设定成Qtopia需要的值则不能保证音频能平滑播放。
假如您的设备只支持22500的播放速率,则在调用SNDCT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- QT 完全 手册
![提示](https://static.bdocx.com/images/bang_tan.gif)