Qte即Qt/embedded,它是Qt的一个版本,要知道,它可不是其他版本(Qt/X11,Qt/mac)的子集,恰相反,Qte比他们包括更大的类库,可以说是他们的扩展。 刚开始,我对Qte很模糊,搞不清楚它的开发模式,和在Qt家族中所处的地位,经过同事的帮助,总算看到了一点起色。
Qt与Qte具有不同的文档: 第一眼了解Qte是在Qt/X11的帮助文档里,还不是首页链接,而是隐藏在Overviews——All Overviews and HOWTOs;看到它,我就觉得Qte就隐藏在Qt的里面,要不为什么把Qte的文档作为Qt文档的一部分来讲呢? 其实不然,Qte与Qt从:源代码包、安装包、配置方式、编译方式、程序运行都是不同的,几乎可以用“并行的铁轨”来形容。
<1>源代码包(解压后都叫做:qt-ver,就分不出Qt还是Qte了,呵呵): Qt:qt-x11-commercial-ver.tar.gz Qte:qt-embedded-ver-commercial.tar.gz
<2>配置参数(以后的每次运行application,都要更改它,有点烦): export QTDIR = …… export LD_LIBRARY_PATH = ……
<3>配置、编译: 首先,需要明确一个概念:Qte不像VxWorks,有Tornado,后期选择目标(Target)平台来编译,可以选择交叉编译方式。 Qte没有,至少没有用于编译、调试的IDE,只有一个Designer,仅仅能拖些控件,快速生成ui文件,然后ui->cpp文件转换。 Qte许多事情要在 configure 时期搞定, 也就是说:每次编译选项(目标平台、发布版/调试版、包含哪些模块支持……)更改,就有面临重新编译整个Qte的工作,而这些在 VxWorks中是不需要的(我的意思是,你不需要重新安装 VxWorks和Tornado),只有在Tornado中用鼠标点一点就可以了。 OK!正题: Qt与Qte都可以: ./configure make 但要知道Qte必要的时候需要配置参数,Qte的configure参数有很多,典型的有: -release/-debug -shared/-static -no-<module>:module包括:opengl,table,network,canvas; -no-xft/-xft:是否支持Anti-Aliased字体,该字体需要xft扩展库; -plateform <target>:指定宿主(Host)平台(这里的target只是平台名字,不是 Host-Target中的目标平台); -xplateform <target>:指定目标(Target)平台; target包括:linux-generic-g++ / linux-x86-g++ / linux-arm-g++ / linux-mips-g++ -qvfb:Qte特有的参数之一,默认是支持的。
<4>编译Tools: 再明确一个概念:Qt这个时候就可以写自己的Hello World了,但对Qte还缺少一个东西:qvfb——Qt的avfb。 qvfb:是Qt的tools之一,也是Qte的tools之一。 编译Qt版qvfb:进入 $QTDIR/Tools/qvfb/ ; ./configure ; make 如果出现有关“-lqt-mt”库的错误,说明以前曾经安装过其他Qt,产生影响,进入Makefile,修改 “-lqt-mt” 为 “-lqt” 编译Qte版qvfb:进入 $QTDIR/Tools/qvfb/ ; ./configure ; make 如果出现有关“-lqt-mt”库的错误,说明以前曾经安装过其他Qt,产生影响,进入Makefile,修改 “-lqt-mt” 为 “-lqte” 当然,对于运行Qt/embedded 的application你不必编译Qt/embedded 中的qvfb。
<5>运行 application: 不提Qt,只说Qte; 首先启动Qt(注意不是Qte)的qvfb : QtDir/tools/qvfb/qvfb 然后运行Qte程序: QteDir/examples/***/*** -qws
令人捧腹的是,你可以在Qt的qvfb中,启动Qte的qvfb。

|