auto標頭檔案 qt Qt 工程的建立一

2021-10-17 01:16:57 字數 3444 閱讀 5051

目錄結構如上:

1.pro檔案:配置項詳細說明注釋:注釋是從一行的#開始,到這一行的結束。

qt += :這個是新增qt專案需要的模組的,若專案中要排除某個模組,也可用qt -=配置項。

lib:建立乙個庫的makefile;

vclib:建立乙個庫的visualstudio專案檔案;

subdirs:這是乙個特殊的模板,可以建立乙個可進入特定目錄並為乙個專案檔案生成makefile,此makfile可以呼叫make;

4. target = :這個配置項用來指定最後生成的目標應用程式的名稱。

5. config += : 用來告訴qmake關於應用程式的配置資訊,使用+=表示在現有的配置上新增,這樣會更安全。比如,config += qt warn_on release 其具體的意義為:qt :告訴qmake此程式是使用qt來連編的。即qmake在連線、為編譯新增所需包含路徑時會考慮qt的庫;

warn_on :告訴qmake要將編譯器設定為輸出警告資訊形式;

release :告訴qmake應用程式必須被連編為乙個可發布的應用程式。開發過程中,也可以使用debug;

6. uic_dir += :用來指定uic命令,將.ui檔案轉化為ui_*.**件存放的目錄。

7. rcc_dir += :用來指定rcc命令,將.qrc檔案轉換成qrc_*.**件存放的目錄。

8. moc_dir += :用來指定moc命令,將含有q_object的標頭檔案轉換成標準.**件存放的目錄。

9. objects_dir += :用來指定目標檔案obj的存放目錄。

10. dependpath += : 用來指定工程的依賴路徑。

11. includepath += : 用來指定工程所需要的標頭檔案。

12. codecforsrc += : 用來指定原始檔的編碼格式。

13. forms += :用來指定工程中的ui檔案。

14. headers += : 用來指定工程中所包含的標頭檔案。

15. sources += :用來指定工程中包含的原始檔。

16. resources += :用來指定工程中所包含的資源檔案。

17. libs += :用來指定引入的lib檔案的路徑,一般會在前面加下引數-l,根據不同的版本可以分為兩種形式:release: libs += -l folder path //release版本引入的lib檔案

debug: libs += -l folder path //debug版本引入的lib檔案

18. defines += : 用來定義編譯選項。

19. destdir += :用來指定目標的生成路徑。

20. 跨平台處理資訊也要寫在.pro檔案中。 其示例如下:

win32{

unix{

2. .pro檔案配置例項

//新增qt依賴的庫

qt += gui

qt += core xml network ********** serialport

greaterthan(qt_major_version, 4): qt += widgets

//新增c11配置支援

config += c++11

//輸出檔案的名稱

//配置控制台輸出

config += console

//原始檔

sources += main.cpp \

opendoorthread.cpp \

testproject/testform.cpp \

testproject/common.pb.cpp \

testproject/goods_req.pb.cpp \

testproject/goods_resp.pb.cpp

//標頭檔案

headers += \

opendoorthread.h \

testproject/testform.h \

testproject/common.pb.h \

testproject/goods_req.pb.h \

testproject/goods_resp.pb.h

//配置debug和release

config +=debug_and_release

config(debug,debug|release)else{

//需要的標頭檔案

includepath += $$pwd/alldll/include

includepath += $$pwd/debug/3rdparty/opencv-2.4.10/include \

$$pwd/debug/3rdparty/opencv-2.4.10/include/opencv \

$$pwd/debug/3rdparty/opencv-2.4.10/include/opencv2

//ui

forms += \

testproject/testform.ui

qmake非常方便、快捷,是乙個輕量級的makefile生成工具,在使用該指令前要正確地編寫.pro檔案。

mainwindow類:繼承 qmainwindow類(class q_widgets_export qmainwindow : public qwidget)

main:建立mainwindow類棧物件,並show

mainwindow.cpp:

static qmetaobject::connection connect(const qobject *sender, const char *signal, const qobject *receiver, const char *member, qt::connectiontype = qt::autoconnection);

函式引數詳解:第乙個引數sender為傳送物件;第二個引數為傳送物件裡面的乙個訊號;第三個引數為接收物件;第四個引數為接收物件裡面的槽函式。一般我們使用傳送者觸發訊號,然後執行接收者的槽函式。

自定義訊號只需要在標頭檔案的類宣告中宣告, 然後將槽連線到訊號即可,無需實現訊號函式。

訊號函式與槽函式的返回值型別在任何時候都可以不同,而且如果不關心訊號傳遞下來的引數,訊號函式與槽函式的引數列表也可以不相同, 但是如果要訪問訊號傳遞下來的任何引數時,訊號函式與槽函式的引數列表必須相同。

比如: qobject::connect(this,signal(notifytextchange(qstring,bool)),this,slot(anstextchange(qstring)),qt::autoconnection);

另外:emit 是可以省略的,因為emit是乙個空巨集,但是為了起到標識作用,一般都會在

訊號函式呼叫前面加上 emit 標識訊號傳送

connect()函式使用的乙個例項:

signals & slots

如上圖所示,訊號引數用signal包含,槽函式用slot包含。然後在對應標頭檔案裡面新增槽函式,如下圖所示:

mainwindow.ui檔案視覺化的視窗設計介面

Qt Qt中的典型類和對應標頭檔案

類 名 對應標頭檔案 作用描述 qobject 類 include qobject 繼承了qobject 類的類,才具有訊號槽的能力 函式qdebug include qdebug 輸出資訊 qmainwindow類 include mainwindow.h 主視窗類 qaction類 includ...

關於工程標頭檔案的處理

不妨先看個例子吧 include include qdebug intmain int argc,char argv 如何編譯這個程式呢?我們知道,構建乙個c 程式 無非是編譯 包括編譯預處理 鏈結 這幾步。對這個程式來說呢,也就是,指定 標頭檔案路徑 qtdir include 庫檔案qtcore...

Eclipse C工程標頭檔案引入

我們在進行c c 的開發時,習慣把頭檔案放乙個資料夾比如include,原始檔放src,這樣在原始檔裡include你自己的標頭檔案會找不到標頭檔案,這是因為eclipse不會自己新增同乙個工程裡面的各資料夾路徑,所以自己寫的標頭檔案就在眼前,但就是找不到,解決辦法 點c 專案上右鍵,propert...