網(wǎng)頁版課程源碼 提取碼:1uy7
成都創(chuàng)新互聯(lián)是一家專業(yè)從事成都網(wǎng)站設(shè)計、做網(wǎng)站、網(wǎng)頁設(shè)計的品牌網(wǎng)絡(luò)公司。如今是成都地區(qū)具影響力的網(wǎng)站設(shè)計公司,作為專業(yè)的成都網(wǎng)站建設(shè)公司,成都創(chuàng)新互聯(lián)依托強大的技術(shù)實力、以及多年的網(wǎng)站運營經(jīng)驗,為您提供專業(yè)的成都網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)及網(wǎng)站設(shè)計開發(fā)服務(wù)!
前幾天,在使用Qt編程時,為項目增加了幾個ui文件。偶然看一下源代碼目錄,發(fā)現(xiàn)源代碼目錄下的臨時文件和臨時目錄太多了,簡直雜亂不堪,雖然我們的代碼是通過svn管理的,提交時有過濾設(shè)置,這些臨時文件不會被入庫,但是有時候需要備份一下源代碼目錄并打包,如果帶著這么多臨時文件(文件尺寸還是非常大的),那可太不方便了。所以今天我們就講一下該如何通過pro文件的配置來整理源代碼目錄。
先不忙,我們順便講一下為項目添加界面(ui)的方法。大概分為四步:
1, 使用designer繪制ui文件并保存。
2, 編寫ui的派生類。
3, 將相關(guān)文件添加到pro。
4, 使用派生類
我們分步驟講解。
第一步,使用designer繪制某對話框資源文件(.ui),請注意,對話框類名:CDialogBase,ui文件名:dialogbase.ui。
這兩個名稱請仔細記下,因為后面會用到。
第二步,我們編寫ui的派生類:
代碼清單:
#ifndef DIALOG_H
#define DIALOG_H
#include "ui_dialogbase.h" // 頭文件名稱來自: dialogbase.ui ---> ui_dialogbase.h
// 第一個父類的名稱來自ui文件中對話框的類名:對象查看器中的類名
// 第二個父類的名稱來自ui文件中對話框基類的名稱(objeceName屬性): CDialogBase
class CDialog : public QDialog, public Ui::CDialogBase
{
public:
CDialog(QWidget* pParent);
~CDialog();
};
#endif
復(fù)制代碼
請注意上文中,#include "ui_dialogbase.h"。
該頭文件就用到了我們剛才保存界面文件時的文件名” dialogbase.ui”,Qt的uic命令將該ui文件轉(zhuǎn)換為ui頭文件:“ui_dialogbase.h”,即 “ui_” 加上”dialogbase”共同拼接成了”ui_dialogbase.h”。
在class CDialog的定義處,我們編寫了多重派生,第一個基類是Qt的QDialog,因為我們在designer中繪制時就是用的QDialog,第二個類看著是否有些面熟?答對了,我們剛才要求大家記住的類名稱就是CDialogBase,而Qt在使用uic命令轉(zhuǎn)換時會為對話框自動生成一個命名空間Ui,這個基類CDialogBase就在該命名空間內(nèi)部定義,所以,我們第二個基類是:Ui::CDialogBase。
另外,請大家一定要注意,把Qt的基類寫在前面,原因是:如果我們的CDialog需要使用Q_OBJECT宏,該宏展開時會用到Qt的基類(QObject)的一些接口,而編譯器認為這些接口只能從第一個基類中查找。所以,請把Qt的基類寫在前面。
下面給出CDialog的實現(xiàn)文件:dialog.cpp:
代碼清單:
/*! \file: dialog.h
\brief 示例實現(xiàn)文件
\author 星點課堂:女兒叫老白
\Date 2018/9
*/
#include "dialog.h"
CDialog::CDialog(QWidget* pParent) : QDialog(pParent)
{
setupUi(this);
}
CDialog::~CDialog()
{
}
復(fù)制代碼
dialog.cpp比較簡單,我們不做過多討論,唯一需要注意的一點就是在構(gòu)造函數(shù)中一定要調(diào)用setupUi(this);否則界面無法正常顯示。
第三步,將相關(guān)文件添加到pro。我們目前添加了一個界面文件(dialogbaes.ui),添加了CDialog類的定義(.h)和實現(xiàn)文件(.cpp)。那么我們把他們添加到pro:
代碼清單:
QT += widgets
FORMS += dialogbase.ui
HEADERS += ks02_02.pro \
dialog.h
SOURCES += main.cpp \
dialog.cpp
復(fù)制代碼
上述代碼中,F(xiàn)ORMS配置項用來描述項目中用到的ui文件,HEADERS和SOURCES兩個配置項在前面章節(jié)介紹過。如果要使用界面,請確保QT+=widgets正確配置。
第四步,我們在代碼中使用CDialog。我們需要先包含CDialog的頭文件(dialog.h),然后在代碼中定義CDialog的對象,然后調(diào)用其接口:
代碼清單:
/*! \file: main.cpp
\brief mian()函數(shù)的實現(xiàn)文件
\author 星點課堂:女兒叫老白
\Date 2018/8
*/
#include <QApplication>
#include <iostream>
#include "qglobal.h"
#include "dialog.h"
using std::cout;
using std::endl;
int main(int argc, char * argv[])
{
Q_UNUSED(argc);
Q_UNUSED(argv);
QApplication app(argc, argv);
CDialog dlg(NULL);
dlg.exec();
return 0;
}
復(fù)制代碼
至此我們?yōu)轫椖刻砑咏缑娴墓ぷ骶徒Y(jié)束了。
下面我們切入正題,通過pro來整理一下目錄。
為了以后進行產(chǎn)品化開發(fā),我們這里引入環(huán)境變量,pro中的所有路徑都通過環(huán)境變量來間接設(shè)置。我們引入一個“TRAINDEVHOME”的環(huán)境變量,它指向我們代碼的src的上級目錄。這樣,代碼的目錄結(jié)構(gòu)如下:
TRAINDEVHOME
------bin
------obj
------src
其中bin 、obj、src都是TRAINDEVHOME的子目錄。
在pro中使用環(huán)境變量的語法:$$(環(huán)境變量)。
比如:$$(TRAINDEVHOME)
代碼清單:
OBJECTS_DIR = $(TRAINDEVHOME)/obj/chapter02/ks02_02
DESTDIR = $(TRAINDEVHOME)/bin
MOC_DIR = $(OBJECTS_DIR)/moc
UI_DIR = $(OBJECTS_DIR)/ui
復(fù)制代碼
在上述pro的配置中,OBJECTS_DIR是臨時文件目錄,我們將其設(shè)置到obj下對應(yīng)的子目錄。
DESTDIR是目標文件存放目錄,就是最終生成的exe存放目錄,我們將其放置到TRAINDEVHOME的bin目錄。
Qt的moc和uic命令生成的臨時文件分別放置到OBJECTS_DIR下面的moc和ui子目錄。
每次修改pro之后,請大家再重新執(zhí)行qmake以便更新相應(yīng)的Makefile文件,如果需要更新VisualStudio的IDE中的項目文件,則需要執(zhí)行qmake –tp vc。
然后,就可以重新編譯程序了。
本節(jié)課程中,我們講了為項目添加ui文件的過程,簡單匯總知識點如下:
. 如果需要使用界面(ui),pro中務(wù)必添加:
QT +=widgets
. 派生類CDialog頭文件中, 包含ui頭文件的拼寫規(guī)則和兩個基類的順序以及拼寫。
#include "ui_dialogbase.h" // 頭文件名稱來自: dialogbase.ui ---> ui_dialogbase.h
class CDialog : public QDialog, public Ui::CDialogBase
. 派生類的構(gòu)造函數(shù)中一定要調(diào)用setupUi(this);
. 在pro中使用環(huán)境變量,通過引用環(huán)境變量設(shè)置相關(guān)目錄。
. 環(huán)境變量在使用時應(yīng)該用下列語法:
$$(環(huán)境變量)
. MOC_DIR:用來存放qt的moc命令生成的臨時文件。
. UI_DIR:用來存放qt的uic命令生成的臨時文件。當項目中包含.ui文件時需要用到。
. FORMS:用來描述項目中包含的.ui文件列表
OK,總結(jié)就到這里,祝大家工作愉快!
《Qt入門與提高-GUI產(chǎn)品開發(fā)》目錄請?zhí)砑渔溄用枋?br/>上一節(jié):KS02-01 通過簡單exe介紹pro基本配置請?zhí)砑渔溄用枋?br/>下一節(jié):KS02-03 加點料-增加一張圖片
分享名稱:K02-02整理一下目錄吧
鏈接URL:http://www.chinadenli.net/article48/ieooep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、標簽優(yōu)化、移動網(wǎng)站建設(shè)、定制開發(fā)、ChatGPT、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)