色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Qt圖形編程基礎(chǔ)之:Qt/Embedded開發(fā)入門

          Qt圖形編程基礎(chǔ)之:Qt/Embedded開發(fā)入門

          作者: 時(shí)間:2013-09-13 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://cafeforensic.com/article/257103.htm

          12.2.3搭建開發(fā)環(huán)境

          一般來說,用開發(fā)的應(yīng)用程序最終會(huì)發(fā)布到安裝有嵌入式的小型設(shè)備上,所以使用裝有的PC機(jī)或者工作站來完成開發(fā)當(dāng)然是最理想的環(huán)境,此外Qt/Embedded也可以安裝在UNIX或Windows系統(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)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉