2009年6月4日 星期四

Embedded Linux系統視窗程式設計-QT(4-4)Qt Creator_1.3 Embedded GUI 介面設計

1. 開發環境:
(1). CPU: Andes RISC CPU core_N12.
(2). 平台: ADP-XC5FF676 V1.1.
(3). Linux OS: Ubuntu9.04.
(4). Toolchains: AndeSight v1.3.3 for Linux.
(5). Embedded Linux2.6.18
2. 目的: 使用跨平台Qt Creator設計GUI介面,再移植至ADP-XC5實驗板.
3. 實驗步驟:
(1). 使用滑鼠選擇Ubuntu下的〝Applications〞->〝Programming〞->〝Qt Creator〞開啟Qt Creator.
注意:編譯前,先在根目錄指定Toolchains,使用〝Terminal〞輸入〝source bashrc.nds32le-linux-V0〞,指定編譯路徑. (2). 選擇Qt Creator下的〝File〞->〝New〞,再選擇〝Qt4 Gui Application〞->〝OK〞.(3). 輸入project 〝Name:〞名稱,這裡先輸入為〝helloqt〞;檔案路徑預設為〝/home/acer〞,這裡不做修改,按〝Next>〞. (4). 不做選擇,按〝Next>〞.(5). 〝Base class〞有〝QMainWindows〞;〝QWidget〞;〝QDialog〞三個類別可以選擇,這裡先選擇〝QDialog〞作為範例,按〝Next>〞.(6). 按〝Finish〞,進入Edit視窗.(7). 再子視窗Projects選擇〝dialog.ui〞開啟視窗介面編輯.(8). 先將視窗大小設定成320x240以配合ADP-XC5實驗板上的3.5吋面板,,之後使用滑鼠拖拉子視窗dialog.ui*的元件擺放.
注意:如要編輯程式請使用滑鼠選擇元件後按〝滑鼠右鍵〞->〝Go to slot...〞既可編輯程式.
(9). 開始編譯跨平台程式:
A. 方式一.使用〝Terminal〞編譯:
(a). 選擇Qt Creator下的〝File〞->〝Save All〞,跳出對話框按〝Save All〞存檔.(b). 使用〝Terminal〞輸入之前檔案預設路徑存檔位置〝cd /home/acer/helloqt〞.(c). 指定Qmake編譯路徑,輸入〝/usr/local/Trolltech/QtEmbedded-4.5.1-generic/bin/qmake -project〞,Qmake路徑為Embedded Linux系統視窗程式設計-QT(4-3)移植Qt for Embedded Linux章節3.(14). 所示QT for Embedded Linuxu編譯結果存檔路徑.(d). 再輸入〝/usr/local/Trolltech/QtEmbedded-4.5.1-generic/bin/qmake〞.(e). 之後輸入〝make〞,開始編譯.B. 方式二,使用〝Qt Creator〞IDE的〝run〞按鈕:
(a). 使用滑鼠選擇Qt Creator〝Tools〞->〝Options...〞->〝Qt4〞:
設定:
*Version Name: QtEmbedded-4.5.1-generic
*Path: /usr/local/Trolltech/QtEmbedded-4.5.1-generic(QT for Embedded Linuxu編譯結果存檔路徑)
*設定完成後按〝+〞符號按鈕,增加〝Default Qt Version: 〞的選項.
(b). 設定〝Default Qt Version: QtEmbedded-4.5.1-generic〞->〝OK〞.(c). 開啟〝/usr/local/Trolltech/QtEmbedded-4.5.1-generic/mkspecs/qws/linux-generic-g++/qmake.conf〞檔案,修改路徑:
# modifications to g++.conf
QMAKE_CC = /home/acer/Andestech/AndeSight133/toolchains/nds32le-linux-glibc-V0/bin/nds32le-linux-gcc -EL -G0 -Wa,-mno-small-data
QMAKE_CXX = /home/acer/Andestech/AndeSight133/toolchains/nds32le-linux-glibc-V0/bin/nds32le-linux-g++ -EL -G0 -Wa,-mno-small-data
QMAKE_LINK = /home/acer/Andestech/AndeSight133/toolchains/nds32le-linux-glibc-V0/bin/nds32le-linux-g++ -EL -G0 -Wa,-mno-small-data
QMAKE_LINK_SHLIB = /home/acer/Andestech/AndeSight133/toolchains/nds32le-linux-glibc-V0/bin/nds32le-linux-g++ -EL -G0 -Wa,-mno-small-data

# modifications to linux.conf
QMAKE_AR = /home/acer/Andestech/AndeSight133/toolchains/nds32le-linux-glibc-V0/bin/nds32le-linux-ar cqs
QMAKE_OBJCOPY = /home/acer/Andestech/AndeSight133/toolchains/nds32le-linux-glibc-V0/bin/nds32le-linux-objcopy
QMAKE_STRIP = /home/acer/Andestech/AndeSight133/toolchains/nds32le-linux-glibc-V0/bin/nds32le-linux-strip
(d). 修改完畢後按Qt Creator IDE的〝run〞按鈕,開始編譯.(10). 將〝cd /home/acer/helloqt〞下產生的〝helloqt〞執行檔,複製到SD卡.
注意:如ADP-XC5重新開機,請延續使用上一章節Embedded Linux系統視窗程式設計-QT(4-3)移植Qt for Enbedded Linux的步驟(17).~(22),如無重新開機可省略.(11). 執行〝./helloqt -qws〞,顯示結果如下所示.注意: ADP-XC5實驗板Embedded Linux進入休眠狀態時,輸入
printf “\033[9;0]” > /dev/tty0〞,開啟.
注意:中斷測試程式按〝Ctrl+C〞.
(12). 程式執行完畢後要卸載SD需再根目錄輸入〝umount /tmp〞.


2 則留言:

  1. 2個頁面, 在Embedded Linux/Ubuntu 上用QT做GUI有人會嗎?幫朋友問的,急…

    回覆刪除
  2. 你是使用Andes core嗎??
    編譯的過程,這個部落格寫的非常清楚,依照歨驟操作一定做的出來.

    回覆刪除