Qt Pro語法總結


1. 注釋
從“#”開始,到這一行結束。

 

2. 模板變量告訴qmake為這個應用程序生成哪種makefile。下面是可供使用的選擇:
TEMPLATE = app
A> app -建立一個應用程序的makefile。這是默認值,所以如果模板沒有被指定,這個將被使用。
B> lib - 建立一個庫的makefile。
C> vcapp - 建立一個應用程序的VisualStudio項目文件。
D> vclib - 建立一個庫的VisualStudio項目文件。
E> subdirs -這是一個特殊的模板,它可以創建一個能夠進入特定目錄並且為一個項目文件生成makefile並且為它調用make的makefile。

 

3. 基礎文件設置

CODECFORSRC = GBK   #指定源文件編碼方式

HEADERS += include/painter.h  #工程中包含的頭文件

FORMS += forms/painter.ui  #工程中包含的.ui設計文件

SOURCES += sources/main.cpp sources/painter.cpp     #工程中包含的源文件

RESOURCES += qrc/painter.qrc  #工程中包含的資源文件

LIBS += -L folderPath  #引入的lib文件的路徑  -L:引入路徑

Release:LIBS += -L folderPath  # release 版引入的lib文件路徑

Debug:LIBS += -L folderPath   # Debug 版引入的lib 文件路徑

DEFINES += XX_XX_XXX    #定義編譯選項,在.h文件中就可以使用 :#ifdefine xx_xx_xxx

RC_FILE = xxx.icns  #程序圖標

 

4. 指定生成的應用程序名
TARGET = pksystem

 

5. 配置信息
CONFIG用來告訴qmake關於應用程序的配置信息。

例如 CONFIG+= qt warn_on release c++11

在這里使用“+=”,是因為我們添加我們的配置選項到任何一個已經存在中。這樣做比使用“=”那樣替換已經指定的所有選項是更安全的。
A> qt部分告訴qmake這個應用程序是使用Qt來連編的。這也就是說qmake在連接和為編譯添加所需的包含路徑的時候會考慮到Qt庫的。所有的Qt庫都需要在CONFIG中添加之后才能使用,例如添加thread才能使用多線程庫。
B> warn_on部分告訴qmake要把編譯器設置為輸出警告信息的。
C> release部分告訴qmake應用程序必須被連編為一個發布的應用程序。在開發過程中,程序員也可以使用debug來替換release。

D> 使用C++11的特性


6. 指定生成的應用程序放置的目錄
DESTDIR += ../bin

7. 指定uic命令將.ui文件轉化成ui_*.h文件的存放的目錄
UI_DIR += forms

8. 指定rcc命令將.qrc文件轉換成qrc_*.h文件的存放目錄
RCC_DIR += ../tmp

9. 指定moc命令將含Q_OBJECT的頭文件轉換成標准.h文件的存放目錄
MOC_DIR += ../tmp

10. 指定目標文件(obj)的存放目錄
OBJECTS_DIR += ../tmp

11. 程序編譯時依賴的相關路徑
DEPENDPATH += . forms include qrc sources

12. 頭文件包含路徑
INCLUDEPATH += .

 

13. 執行qmake時輸出消息

message(XXX) 會在執行qmake時輸出括號中的內容

 

14. 獲取系統參數

如 $$(PATH) 可以讀取環境變量中的PATH

 

15. 平台相關性處理
我們在這里需要做的是根據qmake所運行的平台來使用相應的作用域來進行處理。為Windows平台添加的依賴平台的文件的簡單的作用域看起來就像這樣:

win32 {
SOURCES += hello_win.cpp
}

Linux或Unix使用作用域unix。

 

16. 使用系統命令

主要是使用system關鍵字

例如拷貝文件到指定目錄

win32 {
    src_dir = $$PWD\Resources\*.*
    CONFIG(debug, debug|release) {
        dst_dir = $$OUT_PWD\\debug\\Resources\\
    } else {
        dst_dir = $$OUT_PWD\\release\\Resources\\
    }

    # dst_dir 最后的 \\ 是必須的,用來標示 xcopy 到一個文件夾,若不存在,創建之

    # Replace slashes in paths with backslashes for Windows
    src_dir ~= s,/,\\,g
    dst_dir ~= s,/,\\,g

    !exists($$dst_dir):system(xcopy $$src_dir $$dst_dir /y /e)
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM