- 控制臺(tái)報(bào)
Qt has only been tested with version 10.15 of the platfrom SDK, you're using 13.1. This is an unsupported configuration. You may experience build issues, and by using the 13.1 SDK you are opting in to new feature that Qt has not been prepared for. Please downgrade ths SDK you use to build your app to version 10.15, or configure with CONFIG+=sdk_no_version_check when running qmake to silence this warning
的錯(cuò)誤,需要在 .pro 文件中設(shè)置
CONFIG += sdk_no_version_check
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.15
- 編譯系統(tǒng): QT 目前支持三種編譯系統(tǒng)qmake划栓、Cmake定血、qbs
- 目前 qmake 使用最多
- 以后 Cmake 取代 qmake
- qbs 市場(chǎng)原因,棄用
- pro 文件中部分內(nèi)容釋義:
QT += core gui #包含的模塊
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets # 大于 QT4 版本才包含 widget 模塊
TARGET = example_1 # 應(yīng)用程序名,生成的.exe 程序名
TEMPLATE = app # 模版類(lèi)型,應(yīng)用程序模版
DEFINES += QT_DEPRECATED_WARNINGS # 定義編譯選項(xiàng),QT_DEPRECATED_WARNINGS表示當(dāng) Qt 的某些功能被標(biāo)記為過(guò)時(shí)的,那么編譯器會(huì)發(fā)出警告
SOURCES += \main.app\widget.cpp # 源文件
HEADERS += \widget.h # 頭文件
FORMS += \widget.ui #ui 界面
- Qt Creator 的一些快捷鍵
功能 | 快捷鍵 | 解釋 |
---|---|---|
Switch Header/Source | F4 | 在同名的頭文件和源程序文件之間切換 |
Follow Symbol Under Cursor | F2 | 變量:跳轉(zhuǎn)到聲明;函數(shù):聲明和定義切換 |
Switch Between Function Declartion and Definition | Shift + F2 | 函數(shù):生命和定義切換 |
Refactor/Rename Symbol Under Cursor | Ctrl+Shift+R | 改名稱(chēng),將替換所有用到這個(gè)符號(hào)的地方 |
Refactor/Add Definition in .cpp | 為函數(shù)原型在 cpp 文件中生成函數(shù)體 | |
Auto-indent Selection | Ctrl+I | 為選擇的文字自動(dòng)縮進(jìn) |
Toggle Comment Selection | Ctrl+/ | 注釋或取消注釋 |
Context Help | F1 | 為光標(biāo)所在的符號(hào)顯示幫助 |
Save All | Ctrl+Shift +S | 文件全部保存 |
Find/Replace | Ctrl+F | 調(diào)出查找/替換對(duì)話(huà)框 |
Find Next | F3 | 查找下一個(gè) |
Build | Ctrl+B | 編譯當(dāng)前項(xiàng)目 |
Start Debugging | F5 | 開(kāi)始調(diào)試 |
Step Over | F10 | 單步(略過(guò))調(diào)試,執(zhí)行當(dāng)前語(yǔ)句 |
Step Into | F11 | 單步(跟蹤)調(diào)試,如果當(dāng)前行里有函數(shù),就跟蹤進(jìn)入函數(shù) |
Toggle Breakpoint | F9 | 設(shè)置或取消當(dāng)前行的斷點(diǎn) |
- 添加資源文件: 左側(cè)導(dǎo)航欄項(xiàng)目名->右鍵->add New -> Qt -> Qt Resource File -> 設(shè)置名稱(chēng)-> 創(chuàng)建好后在左側(cè)導(dǎo)航欄 Resources 中會(huì)有剛創(chuàng)建好的文件->選中創(chuàng)建好的文件->在中間底部窗口Prefix 欄填寫(xiě)前綴->點(diǎn)擊中間底部窗口左上角的 Add Files添加文件
Qt 核心特點(diǎn)
- Qt 對(duì)標(biāo)準(zhǔn) C++進(jìn)行了擴(kuò)展,引入了一些新的概念和功能. 使用元對(duì)象編譯器(Meta-Object Compiler, 簡(jiǎn)稱(chēng)MOC,是一個(gè)預(yù)處理器)先將 Qt 的特性程序轉(zhuǎn)換成標(biāo)準(zhǔn)的 C++程序,再由標(biāo)準(zhǔn)C++編譯器進(jìn)行編譯
- 只有添加了 Q_OBJECT 宏,moc 才能對(duì)類(lèi)里的信號(hào)與槽進(jìn)行預(yù)處理
Qt 為 C++語(yǔ)言增加的特性在 Qt Core 模塊里實(shí)現(xiàn),由 Qt 的元對(duì)象系統(tǒng)實(shí)現(xiàn)解寝。包括:信號(hào)與槽機(jī)制识藤、屬性系統(tǒng)、動(dòng)態(tài)類(lèi)型轉(zhuǎn)換等。 - 元對(duì)象系統(tǒng)(Meta-Object System)
- QObject 類(lèi)是所有使用元對(duì)象系統(tǒng)的類(lèi)的基類(lèi)
- 在一個(gè)類(lèi)的 private 部分聲明 Q_OBJECT 宏
- MOC 為每個(gè) QObject 的子類(lèi)提供必要的代碼
- Qt 全局定義:<QtGlobal>頭文件包含了 Qt類(lèi)庫(kù)的一些全局定義,包括: 基本數(shù)據(jù)類(lèi)型、函數(shù)、宏叹坦、
-
定義基本數(shù)據(jù)類(lèi)型是因?yàn)閏++ 的數(shù)據(jù)類(lèi)型在不同的平臺(tái)上數(shù)據(jù)長(zhǎng)度是不同, Qt 定的數(shù)據(jù)類(lèi)型可以保證在各個(gè)平臺(tái)上數(shù)據(jù)類(lèi)型長(zhǎng)度是統(tǒng)一的
- qreal 默認(rèn)是 8 字節(jié) double 類(lèi)型浮點(diǎn)數(shù),如果 Qt 使用-qreal float 選項(xiàng)進(jìn)行配置,就是 4 字節(jié) float 類(lèi)型的浮點(diǎn)數(shù)
- qfloat16 是 Qt5.9.0 中新增的一個(gè)類(lèi),用于表示 16 位的浮點(diǎn)數(shù),要使用 afloat16,需要包含頭文件<QFloat16>
- QT_VERSION: 這個(gè)宏展開(kāi)為數(shù)值形式 0xMMNNPP(MM=major, NN=minor,PP=patch)表示 Qt 編譯器版本,例如 Qt 編譯器版本為 Qt5.9.1,則 QT_VERSION 為 0x050901。這個(gè)宏常用于條件編譯設(shè)置,根據(jù)不同的 Qt 版本,編譯不同的代碼段
- QT_VERSION_CHECK: 這個(gè)宏展開(kāi)為 Qt 版本號(hào)的一個(gè)整數(shù)表示句號(hào), 比如 QT_VERSION >= QT_VERSION_CHECK(5,0,0) 表示大于等于 5.0.0 的 qt版本
- QT_VERSION_STR: 這個(gè)宏展開(kāi)為 qt 版本號(hào)的字符串
- Q_UNUSED: 對(duì)于使用不到的變量或參數(shù)可以使用
Q_UNUSED(arg1);
忽略未使用的參數(shù) arg1 的警告