qt是乙個跨平台的c++圖形使用者介面應用程式框架。它為應用程式開發者提供建立藝術級圖形介面所需的所有功能。它是完全物件導向的,很容易擴充套件,並且允許真正的元件程式設計。
跨平台,幾乎支援所有的平台
介面簡單,容易上手,學習qt框架對學習其他框架有參考意義。
一定程度上簡化了記憶體**機制
開發效率高,能夠快速的構建應用程式。
有很好的社群氛圍,市場份額在緩慢上公升。
可以進行嵌入式開發。
指定編譯器選項和專案配置,值由qmake內部識別並具有特殊意義。
以下配置值控制編譯標誌:
選項 說明
release 專案以release模式構建。如果也指定了debug,那麼最後乙個生效。
debug 專案以debug模式構建。
debug_and_release 專案準備以debug和release兩種模式構建。
debug_and_release_target 此選項預設設定。如果也指定了debug_and_release,最終的debug和release構建在不同的目錄。
build_all 如果指定了debug_and_release,預設情況下,該專案會構建為debug和release模式。
autogen_precompile_source 自動生成乙個.cpp檔案,包含在.pro中指定的預編譯標頭檔案。
ordered 使用子模板時,此選項指定應該按照目錄列表的順序處理它們。
precompile_header 可以在專案中使用預編譯標頭檔案的支援。
warn_on 編譯器應該輸出盡可能多的警告。如果也指定了warn_off,最後乙個生效。
warn_off 編譯器應該輸出盡可能少的警告。
exceptions 啟用異常支援。預設設定。
exceptions_off 禁用異常支援。
rtti 啟用rtti支援。預設情況下,使用編譯器預設。
rtti_off 禁用rtti支援。預設情況下,使用編譯器預設。
stl 啟用stl支援。預設情況下,使用編譯器預設。
stl_off 禁用stl支援。預設情況下,使用編譯器預設。
thread 啟用執行緒支援。當config包括qt時啟用,這是預設設定。
c++11 啟用c++11支援。如果編譯器不支援c++11這個選項,沒有影響。預設情況下,支援是禁用的。
c++14 啟用c++14支援。如果編譯器不支援c++14這個選項,沒有影響。預設情況下,支援是禁用的。
當使用debug和release選項時(windows下預設的),該專案將被處理三次:一次生成乙個」meta」makefile,另外兩次生成makefile.debug和makefile.release。
qmake新增這個變數的值作為編譯器c預處理器巨集(-d選項)。
例如:defines += use_my_stuff
然後就可以在**中使用:
#ifdef use_my_stuff
// todo
#else
// todo
#endif
往往可以指定專案的特殊版本(比如:正式版、試用版)、對一些特殊功能模組(比如:加密狗)進行限制等。
指定檢視解決依賴關係的目錄列表,當包含檔案時使用。
例如:dependpath += . forms include qrc sources
指定在何處放置目標檔案。
例如:destdir = ../../lib
指定ui檔案(參考: qt designer manual)在編譯前被uic處理。所有的構建這些ui檔案所需的依賴、標頭檔案和原始檔都會自動被新增到專案中。
例如:forms = mydialog.ui \
mywidget.ui \
myconfig.ui
指定專案中所有的標頭檔案。
qmake會自動檢測是標頭檔案的類中是否需要moc,並增加適當的依賴關係和檔案到專案中,來生成和鏈結moc檔案。
例如:headers = myclass.h \
login.h \
mainwindow.h
指定編譯專案時應該被搜尋的#include目錄。
例如:includepath = c:/msdev/include d:/stl/include
如果路徑包含空格,需要使用引號包含。
win32:includepath += "c:/mylibs/extra headers"
unix:includepath += "/home/user/extra headers"
指定鏈結到專案中的庫列表。如果使用unix -l (library) 和 -l (library path) 標誌,在windows上qmake正確處理庫(也就是說,將庫的完整路徑傳遞給鏈結器),庫必須存在,qmake會尋找-l指定的庫所在的目錄。
例如:win32:libs += c:/mylibs/math.lib
unix:libs += -l/usr/local/lib -lmath
如果路徑包含空格,需要使用引號包含路徑。
win32:libs += "c:/mylibs/extra libs/extra.lib"
unix:libs += "-l/home/user/extra libs" -lextra
指定來自moc的所有中間檔案放置的目錄(含q_object巨集的標頭檔案轉換成標準.**件的存放目錄)。
例如:unix:moc_dir = ../myproject/tmp
win32:moc_dir = c:/myproject/tmp
指定所有中間檔案.o(.obj)放置的目錄。
例如:unix:objects_dir = ../myproject/tmp
win32:objects_dir = c:/myproject/tmp
指定專案中使用qt的模組。預設情況下,qt包含core和gui,以確保標準的gui應用程式無需進一步的配置就可以構建。
如果想建立乙個不包含qt gui模組的專案,可以使用「 -=」操作符。
下面一行將構建乙個很小的qt專案:
qt -= gui # 僅僅使用core模組
qt += core gui widgets xml network
如果你的專案是乙個qt designer外掛程式,使用值uiplugin指定專案構建成庫
指定qt資源編譯器輸出檔案的目錄(.qrc檔案轉換成qrc_*.**件的存放目錄)。
例如:unix:rcc_dir = ../myproject/resources
win32:rcc_dir = c:/myproject/resources
指定資源檔案 (qrc) 的名稱,參考:qt之資源系統
例如:resources += resource/resource.qrc
指定應用程式資源檔案的名稱。這個變數的值通常是由qmake或qmake.conf處理,很少需要進行修改。
例如:僅適用於windows,指定的圖示應該包含在乙個生成的.rc檔案裡。如果rc_file 和res_file變數都沒有設定這才可利用。
例如:指定專案中所有原始檔。
例如:sources = myclass.cpp \
login.cpp \
mainwindow.cpp
指定目標檔案的名稱。預設情況下包含的專案檔案的基本名稱。
例如:模板變數告訴qmake為這個應用程式生成哪種makefile。
例如:template = lib
sources = main.cpp
target = mylib
指定包含使用者介面翻譯文字的翻譯(.ts)檔案列表。
例如:指定來自uic的所有中間檔案放置的目錄(.ui檔案轉化成ui_*.**件的存放目錄)。
例如:unix:ui_dir = ../myproject/ui
win32:ui_dir = c:/myproject/ui
1 QT 檔案操作
模式 值描述qiodevice notopen 0x0000 不開啟qiodevice readonly 0x0001 唯讀方式 qiodevice writeonly 0x0002 只寫方式,如果檔案不存在則會自動建立檔案 qiodevice readwrite readonly writeonl...
QT之專案檔案( pro)詳解
從 開始,到這一行結束。target qtdemo headers include painter.h forms forms painter.ui sources sources main.cpp sources painter.cpp resources qrc painter.qrc grea...
Qt 專案管理檔案 pro 詳解
圖 1 專案檔案的目錄樹 1 專案管理檔案 samp2 1.pro,儲存專案設定的檔案。2 主程式入口檔案 main.cpp,實現 main 函式的程式檔案。3 窗體介面檔案 widget.ui,乙個 xml 格式儲存的窗體上的元件及 其布局的檔案。4 widget.h 是所設計的窗體類的標頭檔案,...