【QT學習入門】【CH2】 Hello World

讀過QT Creator快速入門 第二章後的隨筆。

主要是介紹了QT Gui界面程序的生成方法,然後後面使用4中方法層層遞進的復現QT Gui界面程序如何生成的。各方法說明如下:

QT Gui界面程序創建

前提:直接使用QT Creator創建一個Gui項目。

特點:QT Creator自動生成ui界面文件,ui的頭文件ui_XXX.h。主程序main.cpp;基於QDialog的子類QXXXDialog;


直接使用純代碼

前提:直接使用QT Creator創建一個空項目,或者在QT命令行中根據cpp文件生成pro文件。

特性:自行創建cpp文件,使用QTC編譯。或者命令行編譯,步驟爲:qmake -project生成工程文件,qmake 生成makefile文件,make-根據makefile進行編譯鏈接成exe。這裏面的類全部都是QT自帶的原始類,如QDialog、QApplication、QLabel。不涉及派生類。

使用ui設計師(ui文件)

前提:直接使用QT Creator創建一個空項目

特點:使用ui設計師生成ui_XXX的ui界面文件,該文件實際上爲XML格式,然後使用QTCreator編譯(記住自添加main.cpp),會根據ui文件生成ui_XXX.h文件。該文件定義了一個Ui_XXX類,並且定義一個命名空間Ui,該命名空間包含一個類XXX,繼承Ui_XXX類。然後創建main.cpp,在主程序中使用Ui_XXX類,用於配置我們創建的QDialog對象。實際上,Ui_XXX類就是一個用於對QDialog進行佈局的類,其佈局函數爲setupUi。對於ui文件生成ui_XXX.h文件的過程,我們可以在QT Command Prompt中實現,使用命令uic -o ui_XXX.h XXX.ui。

創建C++類

前提:使用ui設計師中創建的ui文件。

特點:創建一個基於QDialog的類,在該類構造函數中使用ui_XXX的子類XXX的setupUi接口來配置界面。


使用設計師界面類

前提:創建一個空項目

特點:添加一個設計師界面類。該項目會直接創建和Gui項目相同的幾個文件。


爲何說上面是層層遞進呢?

Gui項目會直接生成main.cpp、類名.cpp、類名.h、XXX.ui、XXX.pro、ui_XXX.h

而純代碼是直接創建空項目(帶pro文件),然後自定義main.cpp。

而ui設計師是在空項目、main.cpp基礎上,使用ui設計師添加一個XXX.ui文件,編譯生成ui_XXX.h文件。

而自定義C++類實際上是在空項目、main.cpp、XXX.ui、ui_XXX.h基礎上,添加了類名.cpp和類名.h兩個文件,用於定義自己的界面類。

而設計師界面類直接生成了gui界面程序的所有文件。


本程序的類圖如下

HelloDialog就是我們自定義C++類,Ui_XXX就是使用QT設計師生成的類。我們使用Ui::XXX來佈局HelloDialog。



============================================

以上是本章的核心知識,本章還涉及如下知識:

顯示中文亂碼問題;

如何發佈應用;

編輯界面文字縮放、自動補全、幫助系統;

=============================================

本章涉及到相應文件說明

創建工程方式

文件清單

 

直接創建Qt Gui應用

QtGuiHello.pro

hellodialog.h

hellodialog.cpp

main.cpp

hellodialog.ui

ui_hellodialog.h

工程文件,包括編譯信息

自定義類h文件,名字嚮導指定

自定義類cpp文件,名字嚮導指定

主程序

Ui界面XML文件

Ui文件生成的類頭文件

空工程,QC編譯

Main.cpp

 

PureCodeQC.pro

我們自己添加的cpp文件,程序入口。內部都用的QT自帶的類。

嚮導生成的工程文件。

無工程,不涉及QC,命令行編譯

Main.cpp

源文件,函數入口。使用如下命令生成exe

Qmake -project 生成工程文件(.pro)

Qmake 根據pro文件生成makefile文件

Make 編譯源文件到.o,連接成exe

空工程,添加UI界面(即設計師界面),QC編譯

XXX.pro

XXX.ui

Main.cpp

Ui_XXX.h

工程文件,空工程自動創建

Ui界面XML文件,添加設計師界面創建

主程序文件,自行創建

根據ui文件生成的類文件,Ui::XXX

命令行編譯ui文件

XXX.ui

Main.cpp

Ui文件,Uic生成ui_xxx.h

自行編輯,Qmake生成exe

自定義C++

XXX.pro

Hellodialog.cpp

Hellodialog.h

XXX.ui

Main.cpp

Ui_XXX.h

工程文件,創建空工程確定;

自定義類cpp文件,創建類

自定義類h文件,創建類

Ui界面XML文件

主程序

Ui文件生成的類頭文件

QT設計師界面類

 等同於Gui界面程序

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章