QT學習筆記1(安裝、建立和訊號與槽)
1、下載和安裝
前言:Qt是一個跨平臺的C++圖形介面應用程式框架。它提供給開發者建立圖形使用者介面所需的功能,廣泛用於開發GUI程式,也可用於開發非GUI程式。Qt很容易擴充套件,並且允許真正地元件程式設計。基本上,Qt同X Window上的Motif,Openwin,GTK等圖形介面庫以及Windows平臺上的MFC、OWL、VCL、ATL是同型別的東西。
下載連結:http://download.qt.io/archive/qt/5.14/5.14.2/
需要註冊的郵箱賬號和密碼:
勾選所要安裝的元件:
同意則繼續:
開始安裝:
等待一會就會安裝成功!!!
開始執行的介面:
點選NEW按鈕,則新建專案:
裡面有Qt的程式專案,包括Qt Widgets、Qt Quick(QML)、Qt for python等的選項,
然後選擇Qt Widgets:
點選下一步:
點選下一步,勾選“QWidget”,勾去“Generate form”,則不會生成ui編輯檔案:
選擇MinGW 64-bit:
點選下一步,會建立如下幾個檔案:
2、各個檔案的解釋
Application.pro:
1.配置項詳細說明
- 註釋:註釋是從一行的
#
開始,到這一行的結束。 QT +=
:這個是新增QT專案需要的模組的,若專案中要排除某個模組,也可用QT -=
配置項。TEMPLATE =
: 這個配置項確定qmake
為這個應用程式生成哪種makefile
。有下面五種形式可供選擇:
app:
建立一個應用程式的makefile,這個是預設值,若模組項未指定,將預設使用此項;
lib:
建立一個庫的makefile;
vcapp:
建立一個應用程式的VisualStudio專案檔案;
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_*.h
檔案存放的目錄。
7. RCC_DIR += :
用來指定rcc
命令,將.qrc
檔案轉換成qrc_*.h
檔案存放的目錄。
8. MOC_DIR += :
用來指定moc
命令,將含有Q_OBJECT
的標頭檔案轉換成標準.h
檔案存放的目錄。
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 += :
用來指定目標的生成路徑。
widget.h:
Widget類進行public繼承QWidget,
Widget(QWidget *parent = nullptr);
這句話表示Widget的建構函式預設傳的是NULL。
widget.cpp:
C++的構造傳參,將parent引數傳給QWidget。
QWidget繼承QObject and QPaintDevice,它的子類有很多,都是元件。
3、訊號與槽
一.訊號
當物件的內部狀態發生改變,訊號就被髮射。只有定義了一個訊號的類和它的子類才能發射這個訊號。
訊號的宣告是在標頭檔案中進行的,QT的signals關鍵字指出進入了訊號宣告區,隨後即可宣告自己的訊號。訊號由moc自動生成,所以不需要在cpp中定義,只需要宣告。
二.槽
槽是普通的 C++ 成員函式,可以被正常呼叫,它們唯一的特殊性就是很多訊號可以與其相關聯。當與其關聯的訊號被髮射時,這個槽就會被呼叫。槽可以有引數,但槽的引數不能有預設值。
槽函式分為三種型別,即 public slots、private slots 和 protected slots。
public slots:在這個區內宣告的槽意味著任何物件都可將訊號與之相連線。
protected slots:在這個區內宣告的槽意味著當前類及其子類可以將訊號與之相連線。
private slots:在這個區內宣告的槽意味著只有類自己可以將訊號與之相連線。
三.訊號與槽的使用
通過呼叫connect 函式來將某個物件的訊號與另外一個物件的槽函式相關聯,這樣當發射者發射訊號時,接收者的槽函式將被呼叫。
1)一個訊號可以連線到多個槽。
2)一個槽可以被多個訊號連線。
3)訊號也可以連線到訊號,此時前者的發射訊號將導致後者的發射。
4)訊號的引數型別可以與槽的引數型別對應,訊號的引數可以比槽的引數多,但不可以少,否則連線將失敗。
備註:
訊號只宣告,不實現;槽函式可以使用匿名函式進行編寫,也可以內建一個類的成員函式,傳遞的都是函式指標。
QPushButton的訊號與槽:
相關文章
- Qt之訊號與槽QT
- 02_QT訊號和槽QT
- Qt入門(3)——訊號和槽QT
- QT 控制檯訊號與槽簡例QT
- golang學習筆記(1):安裝&helloworldGolang筆記
- Mysql學習筆記1--安裝MySql筆記
- 《Qt5:訊號和槽使用示例》QT
- Qt Connect 訊號 槽QT
- Qt5的訊號和槽函式QT函式
- Qt 5 中的訊號槽QT
- 學習筆記1——數字基帶訊號編碼筆記
- Qt學習第三篇(訊號槽函式的連線)QT函式
- C++ Qt開發:如何使用訊號與槽C++QT
- Qt 自動連線機制訊號與槽QT
- Qt - 訊號與槽的第五個引數QT
- Redis安裝與配置(學習筆記一)Redis筆記
- Java學習筆記【1】陣列的宣告和建立Java筆記陣列
- Qt 訊號槽傳遞指標QT指標
- Qt訊號與槽使用方法最完整總結QT
- RabbitMQ學習筆記-安裝MQ筆記
- Centos學習筆記--安裝CentOS筆記
- Docker 學習筆記-基本概念與安裝Docker筆記
- Oracle學習筆記(一)---oracle安裝和配置Oracle筆記
- Qt 訊號槽如何傳遞引數(或帶引數的訊號槽)QT
- QT學習筆記4(動畫)QT筆記動畫
- C++《QT之按鍵QPushButton設定訊號與槽》C++QT
- TypeScript學習筆記—安裝與基礎型別TypeScript筆記型別
- RMAN學習筆記_Catalog 安裝與御載筆記
- GoldenGate 學習筆記(3)_安裝與御載Go筆記
- MySQL學習筆記——建立與約束MySql筆記
- Mysql學習筆記(安裝篇)MySql筆記
- Docker安裝(學習筆記一)Docker筆記
- Airflow學習筆記 --- airflow安裝AI筆記
- python學習安裝筆記Python筆記
- Flask學習筆記(安裝篇)Flask筆記
- ASM學習筆記_ASM安裝ASM筆記
- CentOS學習筆記 – 1.常用工具安裝CentOS筆記
- Centos學習筆記1(U盤安裝centos6.5)CentOS筆記