Qt是軟體開發領域中非常著名的C++視覺化開發平台,能夠為應用程式開發者提供建立專業圖形化使用者介面所需的所有功能。QT有很完整的硬體、作業系統、視窗元件的處理,它是完全物件導向的,很容易擴充,並且可應用於元件程式設計,也是目前流行的Linux 桌面環境KDE 的基礎。相對於Visual C++,Qt更易於學習和開發。
【Qt6.0 的亮點】
(1) Qt繪製硬體介面。撰寫一次繪製程式,就能部署在任何硬體上。
(2) QtQuick 3D。整合原Qt中2D 和3D 功能到同一個技術堆疊上,使用同一套工具就能設計、開發2D 和3D 混合效果的使用者介面,實現下一代使用者的新體驗。
(3) QtQuick Controls 2 桌面樣式。像素級完美、原生外觀的控制項無縫整合入作業系統。
(4) HiDPI 支持。獨立縮放的支持,針對不同的顯示器設定自動縮放UI。
(5) QProperty 系統。透過C++ 中的綁定支援提高程式速度,將QML 最好用部分帶入Qt,並與QObject 無縫整合。
(6) 併發API 的改進。多核心CPU、平行計算、保持使用者介面流暢的同時在後台執行後端邏輯。自動根據硬體進行執行緒數量管理。
(7) 網路功能的改進。建立您自己的通訊後端,並將其整合到預設的Qt工作流中,自動增加與安全性相關的功能。
(8) 更新到C++17。更新到最新標準,提高程式的可讀性、執行性能和易維護性。
(9) CMake 支持。憑藉業界標準建構系統、豐富的功能集及龐大的生態系統建構Qt應用程式。
(10) Qtfor Microcontroller Unit(MCU)。輕量級繪製引擎可在具有2D 硬體加速的低成本硬體上部署基於QML 的UI,從而以最小的佔用空間(>80KB 記憶體)實現最佳的圖形性能。
(11) 無限的可擴充性。既可在超低成本硬體上部署類似於智慧型手機的使用者介面,也可在超級電腦上部署高級圖形介面。
【Qt可以做什麼?】
Qt可在程式中直接操作讀寫Office 中的資料,也可以透過控制項將Office 文件中的資料顯示在應用程式圖形介面上供使用者預覽。例如Excel,其具有完整的試算表處理和計算功能,對其中的資料進行批次運算處理,用Qt操作Excel 可輔助執行大量原始資料的計算功能,巧妙地借助儲存格的運算功能就能極大地減輕Qt程式本身的計算負擔。而用Qt既可以對Word 中的文字也可以對表格中的資訊進行讀寫。
Qt目前的版本對國際化的支持已經相當完善。在文字顯示上,Qt使用Unicode作為內部編碼,可以同時支援多種編碼。Qt目前支援ISO標準編碼ISO 8859-1、ISO 8859-2、ISO 8859-3、ISO 8859-4、ISO 8859-5、ISO 8859-7、ISO 8859-9 和ISO 8859-15,中文GBK/Big5,日文eucJP/JIS/ShiftJIS,韓文eucKR,俄文KOI8-R,當然也可以直接使用UTF8 編碼。
- QML程式設計基礎,QML動畫特效,QtQuick Controls開發基礎
QML(QtMeta Language,Qt元語言)是一個用來描述應用程式介面的宣告式指令碼語言,自Qt4.7 引入。QML 具有良好的易讀性,它以視覺化元件及其互動和相互連結的方式來描述介面,使元件能在動態行為中互相連接,並支援在一個使用者介面上很方便地重複使用和訂製元件。
QtQuick 是Qt為QML 提供的一套類別庫,由QML 標準類型和功能組成,包括視覺化類型、互動類型、動畫類型、模型和視圖、粒子系統和繪製效果等,在程式設計時只需要一筆import 敘述,程式設計師就能夠存取這些功能。使用QtQuick,設計和開發人員能很容易地用QML 建構出高品質、流暢的UI 介面,從而開發出具有視覺吸引力的應用程式。目前,QML 已經和C++ 並列Qt的首選程式語言,Qt6.0支援QtQuick 2.15。
QML是透過QtQML引擎在程式執行時期解析並執行的。Qt6.0更高性能的編譯器通道表示使用QML 撰寫的程式啟動時及執行時期速度更快、效率更高。
QtQuick 3D 是Qt官方為使用者使用QtQuick 建立3D內容或UI 介面而提供的高級API。在Qt5及早前的Qt版本中,要開發3D功能只能使用基於OpenGL的Qt3D 模組,但Qt3D與QtQuick的結合並不緊密,且其多個版本之間的相容性也不是很好。為克服Qt3D的缺陷,自Qt5.15 開始引入了全新的QtQuick 3D,Qt6又對其進行了完善,提供對現有QtQuick場景圖(Scenegraph)的擴充以及與之配套的繪製器,將其與QtQuick 深度整合,同時支援2D與3D混合顯示的功能。透過實例說明場景、相機、光源等基本概念,並演示多種不同視圖與光源的應用。
QtQuick 3D開發基礎它極大地增強了Qt在3D圖形影像領域的地位。此外,跨平台是Qt6.0的優勢特性,本書將Qt在Visual Studio、Android、Python及Linux(Ubuntu)等多種主流平台上的設定和開發方法進行了詳盡的介紹。
- Qt跨平台[包括Visual Studio、Android、Python及Linux(Ubuntu)開發:
當前Qt語言存在兩大主流的編譯環境:除了Qt原生QtCreator 附帶的MinGW 外,還有Visual Studio 的MSVC,由於微軟.NET 平台的流行及VC++開發人員數量的龐大,使用MSVC 的Qt開發也佔有很大比例。
Qt也與時俱進,支援Android 平台上的APP 開發。
現在在資料分析領域最流行的程式語言是Python,它有著強大且可與專業軟體MatLab 媲美的科學計算和視覺化繪圖展現資料的能力。但Python 卻不擅長做介面,而Qt則能很輕鬆地製作出藝術級的圖形化使用者介面。為了能將兩者的優勢相結合,Qt官方推出了Qtfor Python,基於PySide函數庫,封裝了Qt中豐富的GUI 元件,使得Python 開發者可以用QtCreator來開發Python 應用程式,透過QtDesigner 設計器直接拖曳出美觀的UI 介面,這也是未來Qt開發將要著重致力的方向之一。
--
透過學習本書,結合實例上機練習,嘗試在短時間內有系統性並全面地掌握Qt應用技術。
--
深智數位出版:〈Python桌面開發王者-Qt6全方位實例應用開發〉
本文摘錄自深智數位出版之〈Python桌面開發王者-Qt6全方位實例應用開發〉