1 / 18

Using QT

Using QT. 這個文件告訴您如何建立以 QT 撰寫程式的環境。對於如何使用,也會大略提到。 下載 QT 相關程式 安裝 QT 用工具建立一個簡單的程式 ( 可執行檔 ) ※QT 是一個以 C++ 觀念實作的軟體發展工具. 下載 QT 相關程式. 由於 QT 是 free software, 所以您可以從各大 ftp 站取得。例如在 FTP site : ftp.se.ntou.edu.tw 我們進到 pub/FreeBSD/distfiles/ 這裡的 qt* 各個檔案就是 QT 的相關程式 (next page).

ewan
Download Presentation

Using QT

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Using QT 這個文件告訴您如何建立以 QT 撰寫程式的環境。對於如何使用,也會大略提到。 • 下載 QT 相關程式 • 安裝 QT • 用工具建立一個簡單的程式(可執行檔) ※QT 是一個以 C++ 觀念實作的軟體發展工具

  2. 下載 QT 相關程式 由於 QT 是 free software, 所以您可以從各大 ftp 站取得。例如在 FTP site : ftp.se.ntou.edu.tw 我們進到 pub/FreeBSD/distfiles/ 這裡的 qt* 各個檔案就是 QT 的相關程式 (next page)

  3. 下載 QT 相關程式 建議您使用 qt-x11* 的 source code. 這是包含一些 GUI tools 的版本,讓您在製作 X-window 的程式較為便利。

  4. 安裝 QT • 解壓縮 • 設定: 環境變數 • 編譯: 函式庫與相關程式、工具等等

  5. 安裝 QT • 解壓縮 首先執行 gzip –d filename.tar.gz 把您下載下來的檔案解壓縮成 filename.tar 的檔案,再以 tar xvf filename.tar 解開,就會得到一個 QT 的 source code 的目錄 (ex: qt-2.2.3)

  6. 安裝 QT • 設定 (可參考 source code 中的 INSTALL 檔案) 在開始編譯 QT 之前,您必須做一些相關的環境變數的設定。 • 將解壓縮後得到的 QT 目錄放至 /usr/local/qt Example: mv qt-2.2.3 /usr/local/qt • 把下列幾行加入您的設定檔 .bashrc (若您是以 root 登入,則 .bashrc 會在 /root/.bashrc) Example: QTDIR=/usr/local/qt PATH=$QTDIR/bin:$PATH MANPATH=$QTDIR/doc/man:$MANPATH LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH export QTDIR PATH MANPATH LD_LIBRARY_PATH

  7. 安裝 QT • 編譯 (在開始編譯之前,請先重新登入,使環境變數發生作用) 請到 /usr/local/qt/ 輸入下列指令進行編譯的動作 ./configure make (大約需要 45 分鐘) ※在 make 的過程中只要不發生問題,代表 make 後就已經完成安裝 QT 的所有步驟(可以開始使用 QT!!) ※如果在編譯的過程中發生其他問題,請自行解決。(比如說您的系統沒有 C++ 的 compiler, 請自行安裝相關套件)

  8. 用工具建立一個簡單的程式 這一部份的重點是在於如何利用 QT 內附的工具來產生 UI 介面。(請配合附件以了解下列各部份的說明) • UI designer (designer) • UI compiler (uic) • SIGNAL & SLOT • Meta Object Compiler (moc) • Makefile & main.cpp

  9. 用工具建立一個簡單的程式 UI designer • 在 X-window 內執行 designer 的指令後,就會出現一個類似 Microsoft Visual Basic 的 UI designer, 您可以利用它來設計出您想要的程式介面,並設定各個元件的屬性。設計完成後,請將它存檔成檔案如 myWind1.ui 等類似檔名。

  10. 用工具建立一個簡單的程式 • UI Compiler (uic) 接下來,利用 QT 提供的 uic, 它可以將您的 *.ui 轉換成 C++ 的程式碼, 做法如下(在命令列執行下列指令): uic myWind1.ui –o myWind1.h uic –impl myWind1.h myWind1.ui –o myWind1.cpp

  11. 用工具建立一個簡單的程式 • SIGNAL & SLOT 光是靠 uic 產生的 myWind1.h 跟 myWind1.cpp 是無法滿足一個視窗程式的要求的,因為還少了重要的 event handling. (別忘了.. Designer 跟 uic 只幫您建立 “UI” 而已喔!!) 接下來的 event handling 要您自己再做些小動作,才能完成。 (請看下一頁的說明)

  12. 用工具建立一個簡單的程式 • SIGNAL & SLOT 在 QT 的類別庫中,已經有很多以物件導向方式設計出來的元件,其中也為您加上了視窗程式必備的 signals. 這邊所說的 signal, 就是 user 對各物件所做的動作(比方說,您對一個 button 做了一個 click 的動作,程式便會收到一個來自button 的 clicked() 的 signal)。 各個物件提供了哪些 signals, 可以參考/usr/local/qt/doc/html/hierachy.html (注意!! 有些 signals 會是從父類別繼承下來的喔!!)

  13. 用工具建立一個簡單的程式 • SIGNAL & SLOT 光是程式收到 signal 還不夠,因為它還不曉得該如何處理這個 signal. 接下來,就是您必須做的事(為 signal 加上對應的 event handler, 又叫做 slot)。 • 實作 event handler (slot) • 把 slot 跟 signal 連起來,使程式收到 signal 之後會自動去呼叫您的 slot.

  14. 用工具建立一個簡單的程式 • SIGNAL & SLOT 1. 實作 event handler (slot) 首先請決定(在腦中思考)您要把這個 slot 交給誰來處理…. 習慣上是把 slot 寫在父視窗裡,由父視窗處理掉 signal。 myWind1 實作 slot 收到 signal button1

  15. 用工具建立一個簡單的程式 • SIGNAL & SLOT 1. 實作 event handler (slot) 決定要把 slot 的去處之後,請到程式碼裡編輯。 class myWind1 : public QWidget /* 在 myWind1.h 裡 */ { /* 請加上下面兩行 */ public slots: void mySlot1(); /* 其他的宣告沒有必要去更改喔!! */ }; /* 再到 myWind1.cpp 裡加上該 slot 的 implementation */ void myWind1::mySlot1() {……..}

  16. 用工具建立一個簡單的程式 • SIGNAL & SLOT 2. 連接 signal 與 slot 修改 myWind1::myWind1(), 把下面 connect(…) 的敘述加到 button1 建構完成的後面。 connect (button1, SIGNAL(clicked()), this, SLOT(mySlot1())); 其中四個參數的前兩個是 event source(button1) 跟 event type(clicked()), 後面兩個則是負責處理 signal 的 event handler. (this 是指 myWind1 物件)

  17. 用工具建立一個簡單的程式 • Meta Object Compiler (moc) moc 的作用是用來處理 RTTI (run time type information) 與 signal-slot connection. 用法如下: moc myWind1.h –o moc_myWind1.cpp ※ 加入 slot 的動作要在 moc 之前完成!!

  18. 用工具建立一個簡單的程式 • Makefile & main.cpp 您可以從 QT 的範例程式裡 copy Makefile 跟 main.cpp 來改一改,對初學者而言,自己寫可不是件容易的事…. 最後,執行 make, 就可以得到執行檔囉!! ※附件中的 Makefile 是簡化過的,比較容易看懂,您也可以參考看看。

More Related