Qt圖形編程基礎(chǔ)之:Qt/Embedded開發(fā)入門
12.2.3搭建Qt/Embedded開發(fā)環(huán)境
一般來說,用Qt/Embedded開發(fā)的應(yīng)用程序最終會(huì)發(fā)布到安裝有嵌入式Linux操作系統(tǒng)的小型設(shè)備上,所以使用裝有Linux操作系統(tǒng)的PC機(jī)或者工作站來完成Qt/Embedded開發(fā)當(dāng)然是最理想的環(huán)境,此外Qt/Embedded也可以安裝在UNIX或Windows系統(tǒng)上。這里就以在Linux操作系統(tǒng)中安裝為例進(jìn)行介紹。
這里需要有3個(gè)軟件安裝包:tmake工具安裝包、Qt/Embedded安裝包和Qt的X11版的安裝包。
n tmake1.11或更高版本:生成Qt/Embedded應(yīng)用工程的Makefile文件。
n Qt/Embedded:Qt/Embedded安裝包。
n Qt2.3.2forX11:Qt的X11版的安裝包,產(chǎn)生X11開發(fā)環(huán)境所需要的兩個(gè)工具。
注意 | 這些軟件安裝包都有許多不同的版本,由于版本的不同會(huì)導(dǎo)致這些軟件在使用時(shí)可能引起的沖突,為此必須依照一定的安裝原則,Qt/Embedded安裝包的版本必須比QtforX11的安裝包的版本新,這是因?yàn)镼tforX11的安裝包中的兩個(gè)工具uic和designer產(chǎn)生的源文件會(huì)和Qt/Embedded的庫一起被編譯鏈接,因此要本著“向前兼容”的原則,QtforX11的版本應(yīng)比Qt/Embedded的版本舊。 |
1.安裝tmake
用戶使用普通的解壓縮即可,注意要將路徑添加到全局變量中去,如下所示:
tarzxvftmake-1.11.tar.gz
exportTMAKEDIR=$PWD/tmake-1.11
exportTMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
exportPATH=$TMAKEDIR/bin:$PATH
2.安裝Qt/Embedded2.3.7
這里使用常見的解壓命令及安裝命令即可,要注意這里的路徑與不同的系統(tǒng)有關(guān),讀者要根據(jù)實(shí)際情況進(jìn)行修改。另外,這里的configure命令帶有參數(shù)“-qconfig–qvfb–depths4816,32”分別為指定Qt嵌入式開發(fā)包生成虛擬緩沖幀工具qvfb,并支持4、8、16、32位的顯示顏色深度。另外讀者也可以在configure的參數(shù)中添加“-system”、“-jpeg”或“gif”命令,使Qt/Embedded平臺(tái)能支持jpeg、gif格式的圖形。
Qt/Embedded開發(fā)包有5種編譯范圍的選項(xiàng),使用這些選項(xiàng)可控制Qt生成的庫文件的大小。如命令makesub-src指定按精簡(jiǎn)方式編譯開發(fā)包,也就是說有些Qt類未被編譯。其他編譯選項(xiàng)的具體用法可通過“./configure–help”命令查看。精簡(jiǎn)方式的安裝步驟如下所示:
tarzxvfqt-embedded-2.3.7.tar.gz
cdqt-2.3.7
exportQTDIR=$PWD
exportQTEDIR=$QTDIR
exportPATH=$QTDIR/bin:$PATH
exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
./configure-qconfiglocal-qvfb-depths4,8,16,32
makesub-src
3.安裝Qt/X112.3.2
與上一步類似,用戶也可以在configure后添加一定的參數(shù),如“-no-opengl”或“-no-xfs”,可以鍵入命令“./configure–help”來獲得一些幫助信息。
tarxfzqt-x11-2.3.2.tar.gz
cdqt-2.3.2
exportQTDIR=$PWD
exportPATH=$QTDIR/bin:$PATH
exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
./configure-no-opengl
make
make-Ctools/qvfb
mvtools/qvfb/qvfbbin
cpbin/uic$QTEDIR/bin
12.2.4Qt/Embedded窗口部件
Qt提供了一整套的窗口部件。它們組合起來可用于創(chuàng)建用戶界面的可視元素。按鈕、菜單、滾動(dòng)條、消息框和應(yīng)用程序窗口都是窗口部件的實(shí)例。因?yàn)樗械拇翱诓考仁强丶质侨萜?,因此Qt的窗口部件不能任意地分為控件和容器。通過子類化已存在的Qt部件或少數(shù)時(shí)候必要的全新創(chuàng)建,自定義的窗口部件能很容易地創(chuàng)建出來。
窗口部件是QWidget或其子類的實(shí)例,用戶自定義的窗口通過子類化得到,如圖12.3所示。
圖12.3源自QWidget的類層次結(jié)構(gòu)
一個(gè)窗口部件可包含任意數(shù)量的子部件。子部件在父部件的區(qū)域內(nèi)顯示。沒有父部件的部件是頂級(jí)部件(比如一個(gè)窗口),通常在桌面的任務(wù)欄上有它們的入口。Qt不在窗口部件上施加任何限制。任何部件都可以是頂級(jí)部件,任何部件都可以是其他部件的子部件。通過自動(dòng)或手動(dòng)(如果你喜歡)使用布局管理器可以設(shè)定子部件在父部件區(qū)域中的位置。如果父部件被停用、隱藏或刪除,則同樣的動(dòng)作會(huì)應(yīng)用于它的所有子部件。
1.Hello窗口實(shí)例
下面是一個(gè)顯示“HelloQt/Embedded!”的程序的完整代碼:
#includeqapplication.h>
#includeqlabel.h>
intmain(intargc,char**argv)
{
QApplicationapp(argc,argv);
QLabel*hello=newQLabel
(fontcolor=blue>Helloi>QtEmbedded!/i>/font>,0);
app.setMainWidget(hello);
hello->show();
returnapp.exec();
}
2.常見通用窗口組合
Qt中還有一些常見的通用窗口,它們使用了Windows風(fēng)格顯示,圖12.5、12.6、12.7、12.8分別描述了常見的一些通用窗口的組合使用。圖12.4是該Hello窗口的運(yùn)行效果圖:
圖12.4 Hello窗口運(yùn)行效果圖 圖12.5 使用QHBox排列一個(gè)標(biāo)簽和一個(gè)按鈕
圖12.6 使用了QButtonGroup的兩個(gè)單選框和兩個(gè)復(fù)選框 圖12.7 QGroupBox組合圖示
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)linux相關(guān)文章:linux教程
評(píng)論