What is Qt?
Qt簡介
Qt(官方唸法同"Cute",但一般都直接把字母分開唸為Q-T),是一套跨平台(cross-platform)的C++框架(framework),提供完整的函式庫(Library),可以執行在多數的裝置上,包括桌上PC、行動裝置、嵌入式系統,都能見到它的身影。
Qt歷史
Qt初期是由一家名為Trolltech(奇趣科技)的公司所發表,後來這家公司被NOKIA(諾基亞)併購,早期NOKIA手機的Symbian系統中軟體就是使用Qt開發的。
隨著智慧型手機的盛行,NOKIA在手機市場漸漸式微,完全被Android和iOS陣營取代,另外電腦CPU霸主的Intel也一直想打入這塊市場,然而在行動裝置和嵌入式系統相關領域中以往都是ARM CPU所主導,於是Intel和NOKIA合作推出了一套以Linux為基礎,名為"MeeGo"的作業系統,主攻當時盛行的小筆電以及剛興起的智慧型手機,欲依循Apple的模式建構一個完整的生態鏈,但MeeGo最後隨著NOKIA抽手轉往微軟陣營無疾而終,Qt也賣給了digia公司繼續經營。
(註:後來Intel改與Samsung(三星)合作,由三星推出名為Tizen的作業系統,主攻智慧型手機及穿戴裝置,欲拋開在Android上被Google的箝制,像是三星自家的智慧型手錶Galaxy Gear系列產品,大部分就是採用Tizen作業系統,而不是使用Google官方的Android Wear。)
不論MeeGo和後續的Tizen,甚至像是Ubuntu Phone中的作業系統(名為Ubuntu Touch),主要都是由Qt所開發而成的,Qt的蹤跡也從原本嵌入式系統為主,踏進行動裝置的領域。
版本演進
Qt的第一個版本為Qt 1.0,發表於1996年,2005年發布了Qt 4,為版本上的一大演進,相關的應用主要都是這個階段,市面上可以找到的資料與相關教學也都是以Qt 4為主,以筆者自身為例,開始接觸Qt時的版本為Qt 4.7,在當時,能參考的資料都是以Qt 4.6之前的為主。
而Qt 4.7推出了新的UI建構框架,稱為Qt Quick(使用QML這個描述式語言),恰巧筆者因負責的專案所需,也採用了此快速建立UI的方式,一腳踏進了Qt Quick的世界。
Qt 5也是一個版本上的大躍進,除了納入跟主流行動裝置平台(Android/iOS)的整合開發環境,在Qt Quick的版本上也從1.0升級為2.0,修改了底層繪製圖形(Render)的方式,改採基於OpenGL/ES的繪製方式,稱為Qt Quick Scene Graph。
授權方式
Qt在開放原始碼(Open Source)領域中,是廣泛被使用的一套開發框架,像是著名的Linux桌面環境KDE,就是採用Qt開發,甚至像是最多人使用的Linux發行板Ubuntu,其預設桌面環境的開發框架選擇也從GTK+轉為Qt為主。
Qt的授權方式除了免費的Open Source外,也有需要付費的商業版(Commercial),在Open Source的部分,採用的授權方式包括GPL與LGPL(GPL v3、LGPL v2.1、LGPL v3),詳細內容可參考此連結http://doc.qt.io/qt-5/licensing.html
Qt在digia接手後,除了致力於原有Open Source社群的推廣外,將其重心擺在企業版Qt(Enterprise Qt)的合作與商業版Qt的推廣,並於2014年將Qt從母企業中獨立出來為一家公司,稱為The Qt Company,同時官網亦改為http://www.qt.io/
How to?
如何入門
有鑑於Qt 5的中文線上資源有限,對於初學者而言,除了官方線上文件和坊間翻譯(以簡體中文為主),在台灣並未有太多相關的系列教學文章,筆者透過自身在此領域初淺的經驗,使用Qt 5為基礎,將陸續發表一系列文章,以Qt Quick 2為主,搭配Qt C++,引領有興趣的同好,一起學習開發Qt應用程式。
針對進階使用者,包括跨平台(以Android為主)的整合開發,甚至是嵌入式系統(Raspberry Pi)上的應用,有機會的話,筆者都盡量加入探討的範圍中。
本人文筆尚稱拙劣,加上Qt 5只是利用工作之餘來抽空了解,能力與時間有限,且Qt 5和過去筆者熟悉的Qt 4.7/4.8比較起來,還是有些許差異。若是在系列文章中,有任何需要改進,希望各位讀者能不吝提出建議。
線上資源
官方線上文件
官方Blog
A Book about Qt5
Qt Taiwan社群討論區(Google +)
台灣Qt使用者社群(Google 協作平台)
沒有留言:
張貼留言