前言
????????學以致用,通過QT框架的學習,一邊實踐,一邊探索編程的方方面面.
????????參考書:<Qt 6 C++開發指南>(以下稱"本書")
? ? ? ? 標識說明:概念用粗體+傾斜.重點內容用(加粗黑體)---重點內容(紅字)---重點內容(加粗紅字),
????????????????????????本書原話內容用深藍色標識,比較重要的內容用加粗傾斜下劃線深藍色標識
引入
? ? ? ? Qt的一些認識,其中有些部分是所有框架都有的內容
Qt概述
? ? ? ? Qt是一個跨平臺應用開發框架(framework),他是用C++語言寫的一套類庫.特別是圖形用戶界面(GUI)程序.
????????Qt實質上是用C++編寫的大型類庫,他為跨平臺應用開發提供了一個完整的框架.Qt框架包括大量的類,支持GUI、數據庫、網絡、多媒體等各種應用
? ? ? ? ---解讀:應用是指程序員開發,被使用者所使用的程序,也是通常所說的app(移動端).
? ? ? ? ? ? ? ? ? ? 框架是半成品應用,和類庫可以理解成是一個東西(上面提到了Qt實質上是一個大型類庫).框架可以包含其他框架,類庫,也就是說框架可以迭代(遞進定義)的.
????????????????????框架內容和文件相同,含數據類型定義,函數定義,全局變量定義等,以面向對象的角度,他們都被定義在類或者接口中.
????????????????????站在程序員的角度,框架封裝了硬件標準.框架的內容是模塊化的,例如上面說了框架包括GUI、數據庫等應用.這里的"應用"和框架一樣可能是半成品需要程序員完善.? ? ? ? ---以上為解讀
跨平臺
? ? ? ? 經常聽到說什么語言什么框架是跨平臺的.筆者把平臺簡單理解成操作系統.語言或框架都會成為機器碼交給CPU執行.所謂跨平臺是指語言針對平臺(操作系統)開發了對應的編譯器,使得操作系統可以識別代碼,跨平臺由語言或者框架實現,而不是平臺主動適應他.
目標平臺和主機平臺
? ? ? ? 目標平臺就是開發的Qt代碼可以被使用的操作系統.本書列舉了幾大塊,包括桌面端、移動端、嵌入式設備(沒有提到web端,就是不支持web開發)桌面端的幾種操作系統:Windows,Linux和macOS都支持;移動端的Android,iOS,Windows(這個現在很少了)都支持
? ? ? ? 在嵌入式系統中,支持嵌入式Linux,QNX,VxWorks,這些嵌入式設備一般有較強的處理器CPU和豐富的存儲器資源,例如轎車的全液晶儀表盤.
? ? ? ? ---解讀:這里對電子設備應該有個認識:全液晶儀表盤和電腦一樣有CPU,操作系統和內存,顯示器.他和個人計算機(PC)的區別在于:
????????1.輸入方式:個人計算機支持鼠標鍵盤輸入,儀表盤可能沒有輸入或者有觸摸或者其他方式輸入
? ? ? ? 2.任務:個人計算機是多任務系統,儀表盤是專門任務---顯示汽車某些狀態????????---以上為解讀
? ? ? ? MCU的應用開發:只支持部分單片機開發板,實際產品開發需要深度定制.
? ? ? ? 計算機稱為主機,主機包括Windows、桌面Linux、macOS等不同主機平臺,Qt提供了安裝在這3種主機平臺上的對應版本.要針對某個目標平臺開發應用,必須使用對應平臺的Qt.
? ? ? ? ---解讀:目標平臺不同,開發的Qt版本不同,在本書P2表1-1有說明? ???
? ? ? ? ? ? ? ? ? ? 這一點不用太擔心,筆者估計差別也不大? ? ? ?? ? ? ? ? ? ? ? ??????????????????????????????????????---以上為解讀
Qt的高效率
? ? ? ? 用Qt編寫的源代碼經過編譯后是在目標平臺上運行的原生二進制代碼,不想Java代碼那樣需要虛擬機來運行,所以具有很高的運行效率
Qt許可類型
? ? ? ? Qt許可分為商業許可和開源許可,開源許可又分為GPL許可和LGPL許可.
? ? ? ? 商業許可:使用者需要向Qt公司付費(某些模塊只有商業許可版本才有),被允許不公開源代碼
? ? ? ? GPL許可:用戶必須開源,允許商業化銷售
? ? ? ? LGPL許可:兩種情況--1.修改LGPL許可的Qt代碼,必須開源,允許商業化銷售
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2.以庫形式鏈接或調用使用LGPL許可的Qt代碼,可閉源可銷售.
? ? ? ? ----因為商業方面不太懂,所以暫時不考慮.先想辦法把應用寫出來.
小結
? ? ? ? 初步認識Qt