QT入門之 Hello World
上篇文章我講解了怎麼去安裝QT開發環境,下面我們講解怎麼去新建一個工程,工程由哪些結構組成。這裡我們回顧一些知識點。
我的開發壞境是Ubuntu16.04 TLS ,我們用到的安裝包截圖如下,一個是QT Creater,一個是QTLibary。 QTCreater是一個整合開發環境,我們不用也可以,直接命令列寫程式碼,但是很多東西不是很方便,建議大家一併安裝上。
QT Assistant (QT助手) 是文件閱讀器,我們可以檢視我們需要的關於QT資料,和一些庫和函式介面的講解。
Qt Designer (QT 設計師) 是強大的跨平臺GUI佈局和格式構建器 (和ui相關,後面就會明白)
QT Demos(Qt 演示程式和例項)
Qt Linguist (Qt 語言家) 提供了一套加速應用程式翻譯和國際化的工具。
下面開始建立我們的第一個工程
這裡得補充一點:我們建立的工程目錄路徑的所有者必須是使用者而不是root,不然會建立失敗。可以在使用者目錄下建立工程目錄或者在root下建立目錄並用chown owner dir修改成使用者擁有著。
2.1 新建GUI應用
點選檔案->新建工程 ->選擇QT控制元件專案->QT GUI 應用
設定工程名字和工程所在的路徑
這裡需要注意的是我保持預設狀態就行,使用影子構建這個勾不要去掉了,這個的作用是讓我們編譯的程式和生成的程式分別在兩個資料夾,在第一張圖片裡面可以看到有兩個資料夾,hello和hello-build-Destop-QT. hello存放的是原始碼檔案,hello-build-Destop-QT存放的是生成的檔案等
類名可以隨便取,相當於我們自己的類就儲存在這個類名字下面,基類我們選擇Qialog. 表明我們這個類繼承與Qialog這個類,下面幾個是標頭檔案和原始檔,還有一個是介面檔案(很重要,我們下面講解)
下面就是我們建立好的工程和我自己編寫的main.cpp檔案。下面我會帶著大家一起分析這個原始碼。
左下角有個綠色三角形代表執行,或者在命令列下使用qmake -porject main.cpp 將生成一個hello.pro的工程檔案,然後qmake 將生成Makefile檔案幫助我怎麼去編譯這些檔案,最後make就成功了。 大家也會發現整合開發壞境是一部到位,而命令列下需要很多步驟,想巨集處理,連線庫,連線標頭檔案等,相對麻煩一點,但是對一個專案瞭解得相對透徹一點,對系統瞭解得更加全面。
下面開始講解程式碼其他標頭檔案不用看,我們建立GUI工程自動生成的,我們著重關注main.cpp和helloworld.ui這兩個檔案。
#include <QApplication>
#include "helloworld.h"
#include <QDialog>
#include <QLabel>
#include <ui_helloworld.h>
#include <QTextCodec>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); /* 設定編碼,防止中文亂碼 */
QDialog w; /* 建立一個 QDialog物件,是對話方塊*/
#if 0
w.resize(400,300); /* 對話方塊大小是400*300 */
QLabel lable(&w); /* 建立QLable物件,父視窗是w */
lable.move(10,120);/* lable 標籤在對話方塊中的相對位置*/
//lable.setText("Hello World ! 喜愛Linux/熟悉python/精通C"); /* 中文亂碼 */
lable.setText(QObject::tr("Hello World ! 喜愛Linux/熟悉python/精通C")); /* 中文不亂碼 */
#else
Ui::HelloWorld ui;
ui.setupUi(&w);
#endif
w.show();
return a.exec();
}
前幾行是標頭檔案,一個頭檔名字代表一個類
QApplication a(argc, argv); 任何一個QT GUI程式都需要一個QApplication 物件
大家這裡會非常奇怪我這裡為啥要用一個if 0來作為選擇開關,因為這裡有兩種辦法去建立這個工程檔案,如果走if 1部分代表的是手動寫一些視窗的顯示和標件 去顯示Hello World ! 喜愛Linux/熟悉python/精通C ,如果走if 0部分代表的是我們手動用QT Designer建立介面檔案。
我們點選介面檔案下的helloworld.ui檔案,然後再filter找到Label,然後按住滑鼠左鍵將它拖到主設計去的介面上,在雙擊它進入編輯狀態輸入Hello World ! 喜愛Linux/熟悉python/精通C ,然後儲存,我們在main.cpp檔案就可以呼叫我們手動畫圖設定介面程式,需要包含#include <ui_helloworld.h> ,因為我們helloworld.ui編譯後生成的標頭檔案就是#include <ui_helloworld.h> ,相當於自己建立的類名是Ui::HelloWorld
上面我們手動寫程式碼和手動畫圖設計兩者的效果都是一樣的。
編譯ui程式我們可以用命令列實現:uic -o ui_helloworld.h helloworld.ui
建立工程基本到此為止,以後的文章我也會從易到難由博文的形式講解出來。QT是基於C++開發的,所以大家一定要有一點C++基礎,這裡給大家推薦基本學習QT的書籍:《QT Creator 快速入門》和《C++ Primer 中文版(第四版)》
由於博主知識儲備能力有限,如有錯誤,還望不吝指點。
@copyright Linux_Google