1. 程式人生 > >QT入門之 Hello World

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