Qt第一個程序詳解

簡述

前兩節我們瞭解如何在Visual Studio和Qt Creator中搭建Qt開發環境,並建立了第一個Hello Wolrd程序。

今天我們開始真正瞭解Qt第一個程序的實現細節,瞭解第一個程序的代碼原理。今後所有的程序實現我都是基於Visual Studio 2010實現的,不過想在其他環境下實現都是一樣的。有問題也可以及時詢問我。

Hello World

新建一個Qt程序基於Qwidget實現的,過程不再敘述。新建的Hello World程序如下:

這裏寫圖片描述

包含四個部分,hellworld.ui、helloworld.h、helloworld.qrc、helloworld.cpp還有我們的main.cpp。這一節我們主要講述helloworld.cpp 和main.cpp,其他的文件類型等我們以後再講述。我們在helloworl.cpp裏面添加一段代碼。

這裏寫圖片描述

main.cpp詳解

#include "helloworld.h"                 (a)
#include <QtWidgets/QApplication>       (b)

int main(int argc, char *argv[])        (c)
{
    QApplication a(argc, argv);         (d)
    HelloWorld w;                       //創建一個widget對象
    w.show();                           (e)
    return a.exec();                    (f)
}

其中

(a) # include “helloworld.h”:包含了程序要完成功能的HelloWorld類的定義,在HelloWorld類中封裝完成所需要的功能。使用哪個類就必須將包含該類的頭文件引用過來。例如,若用到一個標籤類,則必須在此處添加一行代碼#include< QLabel >,這表明包含了標籤(QLable)類的定義。

(b) #include< QtWidgets/QApplication>:Application類的定義。在每一個使用Qt圖形化應用程序中都必須使用一個QApplication對象。QApplication管理了各種各樣的圖形化應用程序的廣泛資源、基本設置、控制流及事件處理等。

(c) int main(int argc, char *argv[]):應用程序的入口,幾乎在所有使用Qt的情況下,main()函數只需要在將控制轉交給Qt庫之前執行初始化,然後Qt庫通過事件向程序告知用戶的行爲。所有的Qt程序必須有且只有一個main()函數。main()函數有兩個參數,即argc和argv。argc是命令行變量的數量,argv是命令行變量的數組。

(d) QApplication a(argc, argv):a是這個程序的QApplication對象。在任何Qt的窗口系統部件被使用之前必須創建QApplication對象。它在這裏被創建並且處理這些命令行變量。所有被Qt識別的命令行參數都將從argv中被移去(並且argc也因此減少)。

(e) w.show():當創建一個窗口部件的時候,默認它是不可見的,必須調用show()函數使它變爲可見。

(f) return a.exec():程序進入消息循環,等待可能的輸入進行響應,這裏就是main()函數控制權交給Qt,Qt完成事件處理工作,當應用程序退出的時候,exec()函數的值就會返回。在exec()函數中,Qt接受並處理用戶和系統的事件並且將他們傳遞給適當的窗口部件。

Helloworld.cpp詳解

#include "helloworld.h"

HelloWorld::HelloWorld(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);

    /*定義label標籤,其父窗口爲this,即當前繼承來的parent*/
    QLabel *label = new QLabel(this);    

    /*定義標籤內容“Hello Qt”*/           
    label->setText("Hello Qt!");

    /*定義標籤內容上下左右居中*/
    label->setAlignment(Qt::AlignCenter);

    /*定義標籤大小(寬度:600;高度:400),這個寬度和高度是Qwidget的寬度和高度,爲的使文字居中*/
    label->resize(600,400);
}

運行結果

這裏寫圖片描述

發佈了35 篇原創文章 · 獲贊 9 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章