QT .pro文件的實(shí)現(xiàn)
.pro 文件是什么
.pro就是工程文件(project),它是qmake自動(dòng)生成的用于生產(chǎn)makefile的配置文件。類似于VS中的.sln 和vsproj文件

默認(rèn)情況下,每個(gè) Qt 項(xiàng)目都包含一個(gè)后綴名為.pro、名稱和項(xiàng)目名相同的文件。如該項(xiàng)目的項(xiàng)目名為Dashboard,其中Dashboard.pro 就是項(xiàng)目管理文件。
一個(gè)項(xiàng)目中可能包含上百個(gè)源文件,Qt 編譯這些源文件的方法是:先由 qmake 工具根據(jù) pro 文件記錄的配置信息生成相應(yīng)的 makefile 文件,然后執(zhí)行 make 命令完成對整個(gè)項(xiàng)目的編譯。也就是說,pro 文件存儲(chǔ)的配置信息是用來告知編譯器如何編譯當(dāng)前項(xiàng)目的,所以一個(gè) Qt 項(xiàng)目要想完美運(yùn)行,既要保證各個(gè)源文件中程序的正確性,還要保證 pro 文件中配置信息的合理性。
任何一個(gè) Qt 項(xiàng)目都至少包含一個(gè) pro 文件,此文件負(fù)責(zé)存儲(chǔ)與當(dāng)前項(xiàng)目有關(guān)的配置信息,比如:
- 項(xiàng)目中用到了哪些模塊?
- 項(xiàng)目中包含哪些源文件,哪些頭文件,它們的存儲(chǔ)路徑是什么?
- 項(xiàng)目使用哪個(gè)圖片作為應(yīng)用程序的圖標(biāo)?
- 項(xiàng)目最終生成的可執(zhí)行文件的名稱是什么?
對于一個(gè)剛剛創(chuàng)建好的 Qt 項(xiàng)目,pro 文件并不是空的,而是包含一些基本的配置信息。實(shí)際開發(fā)中,Qt 會(huì)自動(dòng)修改 pro 文件的內(nèi)容,但有時(shí)也需要我們手動(dòng)修改,例如程序中用到某個(gè)第三方庫時(shí),就需要我們手動(dòng)修改 pro 文件。
.pro文件的配置信息
.pro 文件可以存儲(chǔ)上百條配置信息,每條配置信息由三部分構(gòu)成:
- 前半部分是關(guān)鍵字,也稱配置項(xiàng),用來指明配置信息的含義;
- 中間用 +=、-=、= 等數(shù)學(xué)符號連接配置項(xiàng)和它對應(yīng)的值;
- 后半部分是配置項(xiàng)對應(yīng)的值,一個(gè)配置項(xiàng)可以對應(yīng)多個(gè)值,每個(gè)值代表不同的含義。

注釋 :使用‘#’進(jìn)行注釋,范圍到每行結(jié)束
模塊引入: QT += 模塊名,表示當(dāng)前項(xiàng)目引入Qt哪些模塊。默認(rèn)值為 core 和 gui
所謂模塊,可以簡單地理解為文件夾或者壓縮包,內(nèi)部包含多個(gè)功能相近的類。作為一款成熟的 GUI 框架,Qt 提供了大量的類,根據(jù)這些類的功能,Qt 將它們分成了幾個(gè)組,每個(gè)組稱為一個(gè)模塊。打開 Qt Creator 的幫助界面并搜索“All modules”,可以看到 Qt 的所有模塊。
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets : 如果QT_MAJOR_VERSION大于4(也就是當(dāng)前使用的Qt5及更高版本)需要增加widgets模塊。如果項(xiàng)目僅需支持Qt5,也可以直接添加“QT += widgets”一句。
配置信息:CONFIG用來告訴qmake關(guān)于應(yīng)用程序的配置信息 。如 CONFIG += c++11:啟動(dòng) C++11 標(biāo)準(zhǔn)支持。(qt5.6以上版本默認(rèn)使用C++11)
TARGET:指定生成的應(yīng)用程序名,中間用 = 符號連接。
HEADERS:指定項(xiàng)目中包含的所有 .h 頭文件
FORMS:指定項(xiàng)目中包含的 .ui 設(shè)計(jì)文件
SOURCES:指定項(xiàng)目中包含的所有 .cpp 源文件
RESOURCES指定項(xiàng)目中包含的資源文件
pro文件大部分配置項(xiàng)不需要我們手動(dòng)修改,比如 SOURCES、HEADERS、FORMS 等,當(dāng)我們添加或者刪除項(xiàng)目中的源文件時(shí),Qt 會(huì)自動(dòng)修改這些配置項(xiàng)。
附:Qtcreator常用快捷鍵
運(yùn)行 ctrl +R
編譯 ctrl +B
幫助文檔 F1 ,點(diǎn)擊F1兩次跳到幫助界面跳到符號定義 F2 或者 Ctrl + 鼠標(biāo)點(diǎn)擊
注釋 ctrl+/
字體縮放 ctrl + 鼠標(biāo)滾輪
整行移動(dòng)代碼 ctrl + shift + ↑或↓自動(dòng)對齊 ctrl + i
同名之間的.h和.cpp文件跳轉(zhuǎn) F4聲明函數(shù)實(shí)現(xiàn):alt鍵
到此這篇關(guān)于QT .pro文件的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)QT .pro文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c++ map索引不存在的key可能導(dǎo)致的后果分析
這篇文章主要介紹了c++ map索引不存在的key可能導(dǎo)致的后果分析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
linux下C/C++學(xué)生信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了linux下c/c++學(xué)生信息管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
C語言中的結(jié)構(gòu)體的入門學(xué)習(xí)教程
這篇文章主要介紹了C語言中的結(jié)構(gòu)體的入門學(xué)習(xí)教程,以struct語句定義的結(jié)構(gòu)體是C語言編程中的重要基礎(chǔ),需要的朋友可以參考下2015-12-12
C語言 結(jié)構(gòu)體(Struct)詳解及示例代碼
本文主要介紹C語言 結(jié)構(gòu)體的知識,學(xué)習(xí)C語言肯定需要學(xué)習(xí)結(jié)構(gòu)體,這里詳細(xì)說明了結(jié)構(gòu)體并附示例代碼,供大家參考學(xué)習(xí),有需要的小伙伴可以參考下2016-08-08
c/c++獲取系統(tǒng)時(shí)間函數(shù)的方法示例
這篇文章主要介紹了c/c++獲取系統(tǒng)時(shí)間函數(shù)的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02

