一、前言
這篇文章介紹QT的工程如何使用。 目前設(shè)計(jì)的很多的物聯(lián)網(wǎng)項(xiàng)目的APP都是采用Qt開發(fā)的。很多同學(xué)對Qt比較陌生,不知道如何使用QT。
這篇文章就來解決這個(gè)問題。
二、QT下載
我這里采用的Qt版本是5.12.6,目前開發(fā)的物聯(lián)網(wǎng)項(xiàng)目的上位機(jī)APP都是采用這個(gè)版本的QT開發(fā)的。
目前官網(wǎng)上是無法下載(國內(nèi)的IP地址被封了,科學(xué)上網(wǎng)才可以),我這將QT的安裝包已經(jīng)下載下來了,放在了網(wǎng)盤里,大家可以去網(wǎng)盤下載。
網(wǎng)盤地址: https://ccnr8sukk85n.feishu.cn/wiki/QjY8weDYHibqRYkFP2qcA9aGnvb?from=from_copylink
(在軟件工具目錄
下QT安裝包
目錄下)
這是 QT5.12.6的官方下載地址:https://download.qt.io/archive/qt/5.12/5.12.6
你也可以從官方下載地址下載(需要解決上外網(wǎng)的問題)。
打開下載鏈接后選擇下面的版本進(jìn)行下載:
三、QT安裝
QT安裝的路徑需要設(shè)置在純英文路徑
下。一般默認(rèn)的C盤路徑就可以。 如果你要換其他安裝目錄,也要保證路徑中沒有中文字符。
軟件安裝時(shí)斷網(wǎng)
安裝,否則會(huì)提示輸入賬戶(當(dāng)然,你注冊一個(gè)賬號登錄也是可以的)。
雙擊安裝包就可以進(jìn)行安裝。
**選擇編譯器: (一定要看清楚了) ** (如果你需要其他的編譯器,可自行選擇)
四、新建QT工程
這個(gè)章節(jié)是教大家測試一下安裝之后的QT環(huán)境是否正常。
4.1 打開QT軟件
安裝QT之后,可以在Qt的安裝目錄下找到你的QT程序,你可以手動(dòng)創(chuàng)建一個(gè)快捷方式放在桌面。
你可以根據(jù)你的QT安裝目錄去尋找你的QT軟件。
比如 我的路徑如下。
C:QtQt5.12.6ToolsQtCreatorbinqtcreator.exe
雙擊qtcreator.exe
就可以打開QT軟件。
4.2 新建工程
【1】新建工程
【2】設(shè)置項(xiàng)目的名稱。
【3】選擇編譯系統(tǒng)
【4】選擇默認(rèn)繼承的類
【5】選擇編譯器,如果你要編譯Android的,可以選Android(如下)
【6】點(diǎn)擊完成
【7】工程創(chuàng)建完成
4.3 切換編譯器
在左下角是可以切換編譯器的。 可以選擇用什么樣的編譯器編譯程序。
目前新建工程的時(shí)候選擇了2種編譯器。 一種是mingw32
這個(gè)編譯Windows下運(yùn)行的程序。 一種是Android
編譯器,可以生成Android
手機(jī)APP。
不過要注意:Android的編譯器需要配置一些環(huán)境才可以正常使用,這個(gè)大家可以網(wǎng)上找找教程配置一下就行了。
也可以看這篇文章(這篇是付費(fèi)的)
https://blog.csdn.net/xiaolong1126626497/article/details/117254453
windows的編譯器就沒有這么麻煩,安裝好Qt就可以編譯使用。
下面我這里就選擇的 mingw32
這個(gè)編譯器,編譯Windows下運(yùn)行的程序。
4.4 編譯測試功能
創(chuàng)建完畢之后,編譯測試一下功能是否OK。
點(diǎn)擊左下角的綠色三角形按鈕
。
正常運(yùn)行就可以看到彈出一個(gè)白色的框框。這就表示工程環(huán)境沒有問題了。 接下來就可以放心的設(shè)計(jì)界面了。
到此,如果正常,說明你的環(huán)境已經(jīng)安裝好了。
五、如何打開現(xiàn)有的工程?
如果你得到了一個(gè)已經(jīng)開發(fā)好的Qt工程,你想打開它編譯使用,如何操作?
比如,你得到的工程是這樣的。 你需要在你電腦上創(chuàng)建一個(gè)純英文的目錄,比如:D:/QtProject
,再將這個(gè)工程復(fù)制
過去。
復(fù)制過去之后,打開文件夾,可以看到后綴.pro
的這個(gè)文件。 雙擊它就可以打開工程。
當(dāng)然也有意外情況,如何你安裝了QT但是這里的圖標(biāo)沒有自動(dòng)識(shí)別為QT工程,怎么辦?
你可以,先打開Qt軟件,軟件在QT軟件里選擇打開工程,找到你的工程路徑,選擇工程打開也可以的。
第一次打開工程需要你選擇編譯器。 如果你要編譯器Android 和 Windows的版本,就按下面的截圖選擇編譯器。
進(jìn)來之后,如果要編譯Windows版本的,就按下面的截圖設(shè)置配置。就可以編譯運(yùn)行了。
啟動(dòng)之后的效果。
如果你想編譯Android版本的。 那么切換編譯器就可以了。
點(diǎn)擊 錘子
按鈕構(gòu)建。
構(gòu)建完成之后,在編譯輸出
頁面,可以看到生成的Android的安裝包路徑位置。
然后通過QQ 或者 微信 其他手段發(fā)給你的手機(jī)就可以安裝了。
QQ 或 微信 默認(rèn)不識(shí)別安裝包的。 你需要選擇瀏覽器
打開,就可以識(shí)別安裝包,然后安裝了。
六、更新Token失敗如何解決?
如果你的項(xiàng)目是物聯(lián)網(wǎng)項(xiàng)目,需要連接華為云IOT這種物聯(lián)網(wǎng)服務(wù)器獲取數(shù)據(jù)。 代碼就會(huì)有使用HTTPS
請求。
用到了HTTPS
就需要SSL
的庫。 你默認(rèn)安裝的QT是不帶這些庫的。
如果沒有這些庫,你點(diǎn)擊界面上的的更新token
就會(huì)報(bào)錯(cuò)。
在應(yīng)用程序輸出
欄目里也會(huì)提示警告。
比如: qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization faile
這樣的提示。
如何解決呢?
在你的項(xiàng)目資料包目錄下,會(huì)有一個(gè)windows的APP文件目錄
,進(jìn)去可以看到兩個(gè)文件。
libcrypto-1_1.dll
和 libssl-1_1.dll
。
將這兩個(gè)文件拷貝到你的Qt的安裝目錄下C:QtQt5.12.65.12.6mingw73_32bin
就可以了。
然后再運(yùn)行程序,測試更新Token就正常的。
七、華為云的工程需要改哪里?
如果你的項(xiàng)目是華為云IOT的工程,運(yùn)行了Qt之后需要替換你的華為云賬號。
前提條件: 你的華為云是標(biāo)準(zhǔn)版
、你是嚴(yán)格按照設(shè)計(jì)文檔做的步驟
、你的項(xiàng)目編號是大于172
。
那么只需要,修改widget.h
文件的3個(gè)參數(shù)即可。
如果不是呢?
看這個(gè)文檔的第五章:https://blog.csdn.net/xiaolong1126626497/article/details/134781708
八、Qt是什么?
Qt介紹與應(yīng)用
1. Qt是什么?
Qt(讀作“cute”)是一個(gè)跨平臺(tái)的C++應(yīng)用開發(fā)框架,它提供了豐富的API和工具,用于開發(fā)圖形界面(GUI)**和**非圖形界面(CLI、后臺(tái)服務(wù))**的應(yīng)用程序。Qt 由 Qt Group(原Digia公司)維護(hù),支持**Windows、Linux、macOS、Android、iOS等多個(gè)平臺(tái),并且支持嵌入式開發(fā),如嵌入式Linux、RTOS等。
2. Qt的核心特點(diǎn)
- 跨平臺(tái)性
- 代碼一次編寫,可在多個(gè)平臺(tái)(Windows、Linux、macOS、Android、iOS、嵌入式Linux)上運(yùn)行,減少重復(fù)開發(fā)工作。
- 模塊化設(shè)計(jì)
- Qt 采用模塊化設(shè)計(jì),提供了GUI、網(wǎng)絡(luò)通信、多線程、數(shù)據(jù)庫、多媒體、3D渲染等模塊,可以根據(jù)需求選擇合適的模塊進(jìn)行開發(fā)。
- 強(qiáng)大的GUI開發(fā)能力
- Qt 提供了Qt Widgets(傳統(tǒng)界面組件)和Qt Quick(QML + C++)(基于QML的現(xiàn)代UI開發(fā))兩種方式,可用于開發(fā)桌面軟件、移動(dòng)端App、嵌入式設(shè)備UI等。
- 信號與槽(Signal & Slot)機(jī)制
- Qt 采用信號與槽機(jī)制,可以實(shí)現(xiàn)高效的事件驅(qū)動(dòng)編程,使界面組件和后臺(tái)邏輯的交互更加方便。
- 豐富的工具支持
- Qt Creator:官方IDE,支持代碼編輯、調(diào)試、UI設(shè)計(jì)等功能。
- Qt Designer:用于可視化設(shè)計(jì)UI界面。
- qmake & CMake:支持項(xiàng)目構(gòu)建和管理。
- Qt Linguist:提供國際化和本地化支持,方便多語言開發(fā)。
- 支持嵌入式開發(fā)
- 開源與商業(yè)版本
- Qt 提供GPL/LGPL 許可證的開源版本,同時(shí)也提供商業(yè)授權(quán)版本,可用于閉源商業(yè)應(yīng)用開發(fā)。
3. Qt能做什么?
Qt 適用于各種軟件開發(fā)場景,常見的應(yīng)用包括:
應(yīng)用類型 | 具體示例 |
---|---|
桌面應(yīng)用 | Windows、Linux、macOS 應(yīng)用,如文本編輯器、IDE、圖像處理軟件(如Photoshop的插件)、系統(tǒng)監(jiān)控工具 |
嵌入式開發(fā) | 智能家居、車載系統(tǒng)、工業(yè)控制(HMI人機(jī)界面)、醫(yī)療設(shè)備(醫(yī)院監(jiān)護(hù)儀)、自助終端(ATM機(jī)) |
移動(dòng)應(yīng)用 | Android 和 iOS 應(yīng)用,如地圖導(dǎo)航、智能設(shè)備控制App |
物聯(lián)網(wǎng)(IoT) | 遠(yuǎn)程設(shè)備控制、智能硬件管理界面、數(shù)據(jù)采集終端 |
3D與圖形應(yīng)用 | 游戲引擎、3D建模軟件(支持OpenGL、Vulkan等) |
網(wǎng)絡(luò)通信 | 基于TCP/IP、MQTT、HTTP的客戶端和服務(wù)器應(yīng)用,如即時(shí)通訊軟件 |
數(shù)據(jù)庫管理 | 連接SQL/NoSQL數(shù)據(jù)庫,開發(fā)數(shù)據(jù)庫管理工具 |
4. Qt的核心模塊
Qt 采用模塊化架構(gòu),常見的模塊如下:
模塊名稱 | 功能 |
---|---|
Qt Core | 核心模塊,提供基本數(shù)據(jù)結(jié)構(gòu)、線程管理、文件操作、時(shí)間管理等功能 |
Qt GUI | 2D圖形、窗口管理、OpenGL渲染支持 |
Qt Widgets | 傳統(tǒng)桌面UI組件,如按鈕、文本框、表格、樹形控件等 |
Qt Quick | 基于QML的UI開發(fā),支持流暢動(dòng)畫和觸摸屏操作,適合移動(dòng)端和嵌入式設(shè)備 |
Qt Multimedia | 多媒體處理,如音視頻播放、攝像頭訪問 |
Qt Network | 網(wǎng)絡(luò)通信模塊,支持HTTP、TCP、UDP、WebSocket、MQTT等 |
Qt SQL | 數(shù)據(jù)庫模塊,支持MySQL、SQLite、PostgreSQL等數(shù)據(jù)庫 |
Qt Bluetooth | 支持藍(lán)牙通信 |
Qt WebEngine | 集成Chromium瀏覽器引擎,用于開發(fā)Web應(yīng)用 |
Qt Charts | 提供豐富的圖表繪制功能 |
Qt 3D | 提供3D圖形渲染,支持OpenGL |
Qt SerialPort | 串口通信,適用于嵌入式設(shè)備 |
5. Qt 開發(fā)方式
Qt 支持兩種主要的UI開發(fā)方式:
(1)Qt Widgets
Qt Widgets 是 Qt 傳統(tǒng)的 GUI 庫,提供了基于**C++**的窗口組件,如按鈕、文本框、菜單、表格等,適用于桌面應(yīng)用開發(fā)。
示例:
#include <QApplication>
#include <QPushButton>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QPushButton button("Hello, Qt!");
button.show();
return app.exec();
}
(2)Qt Quick(QML + C++)
Qt Quick 采用QML(類似JavaScript的聲明式語言),適用于移動(dòng)應(yīng)用、嵌入式觸摸屏界面,支持流暢動(dòng)畫和動(dòng)態(tài)UI。
示例:
import QtQuick 2.15
import QtQuick.Controls 2.15
ApplicationWindow {
visible: true
width: 640
height: 480
Button {
text: "Click Me"
anchors.centerIn: parent
onClicked: console.log("Button Clicked!")
}
}
6. Qt 開發(fā)環(huán)境搭建
(1)安裝 Qt
- 下載 Qt:從Qt 官網(wǎng)下載 Qt 安裝包。
- 選擇安裝組件:
- 必選:Qt Core、Qt Widgets、Qt Quick、Qt Network、Qt Creator(IDE)
- 選裝:Qt Multimedia、Qt SerialPort、Qt WebEngine 等
- 配置 Qt Creator,創(chuàng)建新項(xiàng)目。
(2)交叉編譯(嵌入式開發(fā))
- 下載安裝 ARM 交叉編譯工具鏈
- 配置 Qt 交叉編譯環(huán)境(qmake、CMake)
- 使用 Qt Creator 遠(yuǎn)程調(diào)試嵌入式設(shè)備
7. Qt 的應(yīng)用案例
- 桌面軟件:
- VLC 播放器(開源媒體播放器)
- Wireshark(網(wǎng)絡(luò)抓包工具)
- VirtualBox(虛擬機(jī)軟件的 UI)
- 嵌入式系統(tǒng):
- 車載信息娛樂系統(tǒng)(Tesla UI、寶馬車機(jī))
- 工業(yè)自動(dòng)化(西門子HMI、醫(yī)療設(shè)備)
- 智能家居(智能門鎖、智能空調(diào))
- 移動(dòng)應(yīng)用:
- Telegram(Qt 版本)
- Google Earth(部分界面使用 Qt)
9. 總結(jié)
Qt 是一個(gè)強(qiáng)大的跨平臺(tái) C++ 開發(fā)框架,適用于桌面、移動(dòng)、嵌入式開發(fā),提供豐富的 API 和工具支持,適用于工業(yè)控制、車載系統(tǒng)、智能家居、物聯(lián)網(wǎng)等領(lǐng)域。如果你需要高性能、多平臺(tái)兼容、現(xiàn)代化 UI 界面的開發(fā),Qt 是一個(gè)值得選擇的框架!