搜尋此網誌

2013年10月23日 星期三

Qt5 之啟手式 - Hello World!!

撰寫的方式有二種,一是使用 Qt Creator 來建立專案 (這時才知道原來 Qt Creator 是什麼東西),然後直接在 Qt Creator 上進行編譯,除錯,是個蠻方便的工具。

另外一種是使用自己熟悉的編輯器,撰寫所需要的程式檔,再執行 MinGW 4.8 所附的 Qt 5.1.1 for Desktop ,進人程式在在的目錄,以 command 的方式進行編譯。

這裡就這二種方式來撰學習工具的 101 專案 "Hello World!!"



Qt Creator :

在執行 Qt Creator 後的第一個畫面


(有許多教學文可以看耶~)
點選  "檔案-->新增檔案或專案"

這裡我是選 Qt 圖形介面應用程式

輸入專案名稱和位置


選擇編譯後執行檔要存放的位置


輸入類別資訊


這裡可以選的基礎類別有三種 "QMainWindow", "QWidget" "QDialog",這三種的差別我還不是很清楚,這裡就先不解釋了,等我弄懂了再來補充。
目前我先選 QMainWindow 來當基礎類別。

還可以和版本控制系統連結,這部份也是等我弄懂了再來解釋。


完成後就進入 Qt Creator 的開發畫面囉….


左邊有一欄專案欄位,分別為
HelloWorld <= 專案名
|---- HelloWorld.pro  <= Qt 專用的專案檔,類似 Makefile 的功用
|---- 標頭     <= 用來放所有的 h
|         |---- mainwindow.h <= 因為這個專案是基於 QMainWindow 的類別,所以會產生這個 Head
|---- 源碼     <=  用來放所有的 cpp
|         |---- main.cpp   <= 主要的 cpp
|         |---- mainwindow.cpp  <= QMainWindow 類別的主要程式檔
|---- 表單     <= 用來放所有的 UI 設計檔
           |---- mainwindow.ui    <= window 設計檔案

mainwindow.ui 上點擊二下後可進入 UI 設計畫面


畫面左邊是元件欄,中間是專案顯示的情況,右邊則是專案裡用的元件集合以及每個元件的屬性

這次選擇 PushButton 的元件來當 Hello Word 的示範,以滑鼠按住元件欄裡的 PushButton 拖進專案 UI window 中後放開,就能在 UI 上產生一個 PushButton 元件。


接著在剛剛產生的 PushButton 上雙點擊,就能改變 PushButton 的顯示名稱


接下來點下左下角的綠色三角型按鈕,專案就進入編譯的過程,編譯完後會自動執行。


這時, Hello World!! 的專案就完成囉,竟然不用寫 code 就可以完成這個專案囉.. 真是太爽了

==================================================================================
Command 的方式編譯程式:

先執行剛剛安裝的 "Qt 5.1.1 for Desktop (MinGW 4.8 32bit)" 程式,此時會出現 command line 的視窗。


以自己常用的文字編輯器輸入 HelloWorld 的範例程式。



將工作目錄切換到 HelloWorld_cmd 專案的目錄下。


可以看到剛剛寫的範例程式,再以 qmake -project 來產生 Project


在產生 helloworld_cmd.pro 檔後,要記得把程式裡用到的 library 加進專案檔裡,不然之後會發生 Head File 找不到的問題。



目前還不能直接編譯程式,因為缺少 Makefile 。所以需要再以 qmake helloworld_cmd.pro 來產生編譯用的 Makefile


這時會產生 Makefile 以及 release debug 三個檔案,接下來就可以用 make 來編譯程式了。
不過,因為我們用的是 MinGW ,所以不是用一般的 make 來編譯,而是用 mingw32-make


由於我編的是 default 的版本,所以產生出來的是 release 的執行檔,可以在專案目錄裡的 release 底下找到 helloworld_cmd.exe 檔,這就是可以直接在 windows 上執行的檔案了。

在執行這個執行檔後,就可以看到剛剛編寫的畫面了。


Hello World 就完成了…...
===============================================================================

真的完成了嗎……
其實,剛剛那二種方式寫出來的 hello world 都可以在開發的環境下執行成功,不過,如果你是從檔案總管進到專案目錄下,直接點擊執行檔,其實是會出現錯誤訊息的。


還記得剛剛手動在專案檔裡加入 core, gui, widgets 這幾個 library 嗎?剛剛能執行成功是因為環境變裡已經被安插 Library path ,所以在執行時可以成功 link 到使用的 library 而現在因為沒有建立 Library 的路徑,所以是沒辦法執行的。

在還沒學到正確的方式之前,我先用最笨的方式來解決這個問題,對,就是找出 library 然後複製到該目錄下,這樣就能暫時解決這個問題囉….之後再來補充正規的解法囉

在複製這些 dll 檔後,就能成功執行 helloworld_cmd.exe ..




沒有留言:

張貼留言