Qt 和Qtopia的安裝

2021-04-12 16:36:43 字數 4877 閱讀 8138

qt 和qtopia的安裝

如果需要安裝乙個帶frambuffer的qtopia平台,需要有以下軟體(所列舉軟體以筆者使用的為例):

◆ qtopia 1.6.0;

◆ tmake 1.11;

◆ qt/embedded 2.3.4(qtopia 1.6.0是基於該開發平台上開發的);

◆ qt/embedded 2.3.2 for x11;

◆ qt 3.1.2 for x11。

qtopia平台安裝分為以下幾個步驟:

1. 解包qtopia

在linux命令模式下執行以下命令:

tar xfz qtopia-source-1.6.0 (解包)

cd qtopia-source-1.6.0

export qpedir=$pwd (設定環境變數)

cd..

2. 安裝tmake

在linux命令模式下執行以下命令:

tar xfz tmake-1.11.tar.gz

export tmakedir=$pwd/tmake-1.11

export tmakepath=$tmakedir/lib/qws/linux-x86-g++

export path=$tmakedir/bin:$path

3. 安裝qt/embedded2.3.4

在linux命令模式下執行以下命令:

tar xfz qt-embedded-2.3.4-commercial.tar.gz

cd qt-2.3.4

export qtdir=$pwd

export qtedir=$qtdir

export path=$qtdir/bin:$path

export ld_library_path=$qtdir/lib:$ld_library_path

cp $qpedir/src/qt/qconfig-qpe.h src/tools/

. /configure -qconfig qpe -qvfb -depths 4,8,16,32

make sub-src

cd ..

也可以在configure的引數中新增-system-jpeg和gif,使qtopia平台能支援jpeg、gif格式的圖形。

4. 安裝qt/x11 2.3.2

在linux命令模式下執行以下命令:

tar xfz qt-x11-2.3.2-commercial.tar.gz

cd qt-2.3.2

export qtdir=$pwd

export path=$qtdir/bin:$path

export ld_library_path=$qtdir/lib:$ld_library_path

. /configure -no-opengl

make

make -c tools/qvfb

mv tools/qvfb/qvfb bin

cp bin/uic $qtedir/bin

cd ..

根據開發者本身的開發環境,也可以在configure的引數中新增別的引數,比如-no-opengl或-no-xfs,可以鍵入./configure -help來獲得一些幫助資訊。

5. 安裝qt/x11 3.1.2

在linux命令模式下執行以下命令:

tar xfz qt-x11-commercial-3.1.x.tar.gz

cd qt-x11-commercial-3.1.x

export qtdir=$pwd

export qt3dir=$qtdir

export path=$qtdir/bin:$path

export ld_library_path=$qtdir/lib:$ld_library_path

./configure -thread

make

cd ..

6. 安裝qtopia

在linux命令模式下執行以下命令:

cd qtopia-source-1.6.x

export qtdir=$qtedir

export qpedir=$pwd

export path=$qpedir/bin:$path

cd src

./configure

make

cd ../..

7. 安裝qtopia桌面

cd qtopia-source-1.6.x/src

export qtdir=$qt3dir

./configure -qtopiadesktop

make

mv qtopiadesktop/bin/qtopiadesktop ../bin

cd ..

qt和qt designer的使用

根據上面的步驟安裝完成了qt/embedded和qtopia之後,就可以執行這些程式了。

執行qt的虛擬**視窗:在linux的圖形模式下執行命令qvfb&;qtopia只是乙個用qt/embedded開發的程式,執行qtopia,在圖形模式下執行命令:

export qtdir=$qtedir,

qpe &;

這樣qtopia的程式就執行在qvfb上,即qt的虛擬**視窗。

qt/embedded是針對嵌入式linux而開發的一種開發工具,qt封裝了一些常用的類,而且這些類的名字都以q字開頭命名,如qstring、qdialog等。這裡主要介紹一下如何利用qt designer來設計元件,並生成相應的**。

在qt中,把元件分為複合體、原始體和配件。而在qt中,元件是由一些抽象類、複雜的元件類、管理元件幾何特性的類等組成。

在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。

要將元件組合起來,最簡單的方法就是使用qt designer。首先要啟動qt designer,在linux命令模式下,鍵入以下命令(假設qt安裝在/usr/local下):

cd qt-2.3.2/bin

./designer

這樣就可以啟動乙個與windows下的delphi相類似的如圖1的介面。

圖1 qt designer介面

然後新建乙個qframe,將自己需要的元件直接拖拉到這個frame中,相信很多人都有過 這樣的經歷,此處就不再詳細描述了。完成之後存檔時,會將這個新的元件儲存為乙個擴充套件名為.ui的檔案。假設所存的檔名為test.ui,用vi test.ui來檢視這個檔案,發現這是乙個用xml語言寫的乙個文字。下面用這個test.ui生成相應的test.h和test.cpp。同樣還是在 這個目錄下,可以看到乙個uic的工具,這個是qt專門用來將ui檔案生成.h和.cpp檔案的,在終端模式下鍵入以下命令:

./uic -o test.h test.ui

./uic -o test.h -i test.cpp test.ui

此時就能看到生成了相應test.h和test.cpp,這是乙個類。當然這只是一 些表面的東西,還需要在這些**中新增相應的signal和slot,完成所需要的操作。值得注意的是,相應版本生成的ui最好用相應版本的uic來生成 **。如果用qt 3.1.2的designer生成的ui,用qt 2.3.2的uic來生成**,生成的**都會是一些空函式。

在一般的開發過程中,首先通過這個ui生成的乙個類,在qt中通常叫做base, 如上面的例子,叫做testbase;然後再新建乙個類,來繼承這個base。通常叫做實現類impl,如testimpl。在這個實現類裡面定義所需要 的成員函式、signal和slot,因為ui可能是經常需要改動的。如果這樣做,每次只需要在designer中修改ui,而不用去理會這些成員函式、 signal和slot了。

編譯乙個qt程式必然需要makefile,在qt中提供了乙個專門生成makefile的工具,就是tmake。用tmake需要根據編寫的程式寫乙個.pro檔案。.pro檔案非常簡單,有固定的格式,下面是乙個例子:

config = qtopia warn_on release

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

inte***ces = test.ui /

target = fcrs

生成這個.pro檔案之後,在終端中鍵入下面的命令:

tmake -o makefile test.pro

就自動生成了乙個makefile,使用這個makefile編譯所編寫的程式就可以了。

交叉編譯qtopia學到的

我最初學習linux的時候,學了很多linux的發行版本,最後在組長的推薦和自己的喜好驅使下,選擇了使用slackware,linux的乙個比較古老的發行版本。所以,嵌入式的學習宿主機也是slackware,前一段時間交叉編譯bluez協議棧,雖然遇到了很多的波折,但是還是編譯通過了。由於,剛開始學...

QtE與Qtopia的概念

qtopia是乙個構建於qt e之上的類似桌面系統的應用環境。qte是乙個專門為嵌入式系統設計圖形使用者介面的工具包。qtopia在android出現之前應用,但是2009年之後就不再更新。如果不 是有特定的需求,不建議學習和使用qtopia。qte一直在更新,在工業應用,汽車以及消費電子中比and...

ubuntu 安裝和配置 QT

install qt 5 on ubuntu qt wiki sudo gedit usr lib x86 64 linux gnu qtchooser default.conf sudo gedit usr lib x86 64 linux gnu qt default qtchooser def...