Skip to content

Qt、QML、Widgets 之間的差異與介紹

依照官方文檔的說明,對於剛接觸 Qt 這個框架的開發者而言,首要釐清的就是幾個重要的名詞,比方說 Qt 究竟是什麼?文件中很常提到的 QML 又是什麼?Widgets 在 Qt 框架中究竟又是扮演什麼樣的角色…… 等等。

本篇筆記主要是翻譯自官方文檔(連結附於文末),但會添加我個人的理解與興許是畫蛇添足的說明。


Qt 是什麼呢?

Qt 作為世界上最流行的圖形化介面開發框架之一,同時也是一個開源的多人協作項目,用來進行 Qt 框架的開發。

作為一個成熟的圖形化介面開發框架,Qt 擁有著許多的元件與模組。例如 qtbase 就是一個基礎的元件並包含許多著名的模組,比方說 QtCoreQtGuiQtWidgetsQtNetwork…… 等等,而這些模組底下又有著許多可以直接呼叫的類別(classes),像是 QtCore 模組底下就包含著 QFileQTimeQByteArray…… 等等。

開發者們當然也可以在沒有使用者介面的情況下開發應用程式,比方說命令列工具、文件處理、網路處理、正規表示式、文件編碼…… 等等工作。

但若是要開發圖形化介面,則可以很輕易地使用 QtWidgets 模組中的類別來建立。而這些可以建立的類別,就是 Qt 中所提供的『部件』(Widgets)。


Widget 是什麼呢?

QtWidgets 就是提供預設的部件模組,我們可以將預設的部件,諸如按鈕、標籤、選單…… 等等加入我們開發的圖形化介面主視窗。

而由於 Qt 框架是支援 Windows、Mac OS、Linux 等知名作業系統的,所以在圖形化介面中你可以發現應用程式的外觀看起來與系統原生的外觀很像。

這裡我並沒有實際截圖,但確實有在不同的作業系統上測試過,的確是滿相像的。大家也可以前往文末的官方文檔連結確認範例圖片。


QML 又是什麼呢?

和 Qt 預設提供的部件不同,QML 是另外一個體系的使用者介面開發方式,其最早存在的目的是為了開發行動裝置的應用程式。

它的模組中,也提供了點擊、拖放、動畫、轉換、抽屜…… 等等在行動裝置上常見的操作。

不過雖然它的大方向是為了提供行動裝置介面接口,但開發者們仍然可以將其應用在桌面應用程式。

Tags:

Leave a Reply