QTE :嵌入式圖形界面編輯器
QTE是一個專門為嵌入式系統設計圖形用戶界面的工具包,是挪威Trolltech公司的Qt的嵌入式版本。其特點包括:開原始碼和詳盡的API文檔;可移植性好;模組化設計可裁減(最小只有600k左右);有自己的視窗系統,可直接對底層圖形驅動進行操作;提供壓縮字型格式;多種硬體和軟體的輸入;支持反鋸齒文本和Alpha混合圖片;可連線資料庫;可使程式本地化;可與java集成等。QtE雖開源,但商業套用需付license費用!
Qtopia是在QtE基礎上轉為移動和手持設備開發的套用環境,分Phone版和PDA版兩種。
QtE通過Qt API與Linux I/O設備直接互動,同Qt/X11相比,QtE不需要X伺服器或Xlib庫,採用frame-buffer作為底層圖形接口,同時將外部輸入設備抽象為keyboard和mouse輸入事件。
QtE開發採用交叉編譯的方式,在宿主機開發時通過qvfb(virtual frame-buffer)來模擬frame-buffer。qvfb是X視窗用來運行和測試Qtopia的系統程式。
宿主機移植所需工具及環境變數:
Tmake-1.11 生成Makefile檔案 TMAKEDIR/TMAKEPATH/PATH
Qt-x11-2.3.2 Qvfb--虛擬frame-buffer工具 LD_LIBRARY_PATH/PATH
Uic--用戶界面編輯器
Designer Qt--圖形設計工具
Qt-emebbed-2.3.7 Qt庫支持.so QTEDIR/LD_LIBRARY_PATH/PATH
Qtopia-free-1.7.0 應用程式開發包桌面環境 QPEDIR/LD_LIBRARY_PATH/PATH
QtE信號與插槽是Qt自定義的一種通信機制,獨立於標準的C/C++語言,其實現必須藉助於MOC(Meta. Object Comilper)的Qt工具。MOC是一個C++的預編譯器,為高層次的事件處理自動生成附加的代碼。
所有從QObject或其子類派生的類都能包含信號和插槽,當對象改變狀態時,信號就由該對象發射;插槽用於接收信號,它們是普通對象的成員函式。用戶可以將很多信號與一個插槽相連,也可將單個訊息和多個插槽相連。
信號:void mysignal(int x);
插槽:void myslot(int x);
信號與插槽的關聯:connect(abutton, SIGNAL(clicked),SLOT(quit));
建立QtE的開發環境
x86-qtopia (嵌入式環境的建立類似!)
#tar -zxvf x86-qtopia.tgz
#./build
在PC模擬Qtopia運行時,要用到Qt版本的庫檔案,因此要在/etc/ld.so.conf檔案內添加
/x86-qtopia/qt/lib
/x86-qtopia/qtopia/lib
添加完畢後執行ldconfig進行更新。
運行QtE
在/x86-qtopia目錄下運行
#source set-env 或者 . set-env 來設定環境變數
#qvfb & (默認為240*320)或者 qvfb -width 640 -height 480 & 來啟動虛擬frame-buffer
#qpe & 來運新Qtopia
設計應用程式的基本步驟
1. 編寫*.cpp檔案
2. progen -t app.t -o name. pro (name為項目名稱)
3. tmake -o Makefile name. pro (自動生成Makefile檔案)
4. 在Makefile檔案的LIBS項中添加-lm -lstdc++,然後執行make
5. qvfb -width 640 -heigth 480 &
6. ./xxx -qws