Qt跨平臺(tái)的 C++ 應(yīng)用和 UI 開(kāi)發(fā)庫(kù)
Qt 是一種更快,更智能的方式來(lái)為多個(gè)屏幕創(chuàng)建創(chuàng)新的設(shè)備、現(xiàn)代用戶界面和應(yīng)用程序。它是一個(gè)跨平臺(tái)的C++應(yīng)用程序開(kāi)發(fā)框架。它提供給開(kāi)發(fā)者建立圖形用戶界面所需的功能,廣泛用于開(kāi)發(fā)圖形用戶界面程序,也可用于開(kāi)發(fā)非圖形用戶界面(比如命令行界面)程序。Qt是完全面向?qū)ο蟮?,很容易擴(kuò)展,并且允許真正地組件編程。
基本上,Qt 同 X11上的GTK、Motif、Openwin和Windows上的MFC,OWL,VCL,ATL 是同類型的東西,但是 Qt 支持更多的平臺(tái)(包括Windows、GNU/Linux、Mac OS X、Android、iOS、WinCE、Unix家族等),面向?qū)ο笄夷K化程度更高(Qt 提供了一種稱為 signals/slots 的安全類型來(lái)替代 callback,這使得各個(gè)元件 之間的協(xié)同工作變得十分簡(jiǎn)單)。
豐富的API(Qt 包括多達(dá) 250 個(gè)以上的 C++ 類,還替供基于模板的 collections, serialization, file, I/O device, directory management, date/time 類。甚至還包括正則表達(dá)式的處理 功能),支持 2D/3D 圖形渲染,支持 OpenGL、大量的開(kāi)發(fā)文檔、XML支持等。
Qt的特點(diǎn)
- 優(yōu)良的跨平臺(tái)特性
- 支持面向?qū)ο?/span>
- 豐富的 API
- 支持 2D/3D 圖形渲染,支持 OpenGL
- 大量的開(kāi)發(fā)文檔
- XML 支持
我們所使用的 Qt,確切地說(shuō)也就是它的 GUI 編程部分。C++ 的 GUI 編程同 Java 不同:GUI 并不是 C++ 標(biāo)準(zhǔn)的一部分。所以,如果使用 Java,那么你最好的選擇就是 AWT/Swing,或者也可以使SWT/JFace,但是,C++ 的 GUI 編程給了你更多的選擇:wxWidWget、GTK++ 以及 Qt。
Qt Creator
Qt Creator是一個(gè)用于Qt開(kāi)發(fā)的輕量級(jí)跨平臺(tái)集成開(kāi)發(fā)環(huán)境。Qt Creator可帶來(lái)兩大關(guān)鍵益處:提供首個(gè)專為支持跨平臺(tái)開(kāi)發(fā)而設(shè)計(jì)的集成開(kāi)發(fā)環(huán)境,并確保首次接觸Qt框架的開(kāi)發(fā)人員能迅速上手和操作。即使不開(kāi)發(fā)Qt應(yīng)用程序,Qt Creator也是一個(gè)簡(jiǎn)單易用且功能強(qiáng)大的集成開(kāi)發(fā)環(huán)境。Qt Creator包含了一套用于創(chuàng)建和測(cè)試基于Qt應(yīng)用程序的高效工具,包括:
- C++代碼編輯器
- 上下文感知幫助系統(tǒng)
- 可視化調(diào)試器
- 源代碼管理
- 項(xiàng)目和構(gòu)建管理工具
Qt Linguist被稱為Qt語(yǔ)言家。它的主要任務(wù)只是讀取翻譯文件、為翻譯人員提供友好的翻譯界面,它是用于界面國(guó)際化的重要工具。 Qt Linguist工具從4.5開(kāi)始可以支持Gettext的PO文件格式。
Qt 和智能手機(jī)
Qt 目前支持主流的 Android、iOS、WinPhone 等智能機(jī)操作系統(tǒng)。MeeGo 是基于 Qt 開(kāi)發(fā)的操作系統(tǒng),由于被諾基亞拋棄了, 只剩一代絕版諾基亞 N9 手機(jī)。諾基亞手機(jī)部門出售給微軟之后,大部分諾基亞手機(jī)系統(tǒng)開(kāi)發(fā)人員都被遣散了。
原來(lái)諾基亞的一部分人成立新的 Jolla(卓藍(lán))公司,發(fā)布了 MeeGo 的衍生版智能手機(jī)系統(tǒng) Sailfish(旗魚(yú)),相應(yīng)的手機(jī)和平板也發(fā)布開(kāi)賣了。另一撥人投靠了 Tizen(泰澤),Tizen 是英特爾和三星力推的智能手機(jī)系統(tǒng),該系統(tǒng)整合了 Limo 和 MeeGo,因?yàn)?MeeGo 系統(tǒng)被諾基亞拋棄,英特爾其實(shí)是被出賣了,所以只能聯(lián)合三星重造智能手機(jī)系統(tǒng) Tizen。
目前基于 Tizen 的首款手機(jī)三星 Z1 在印度上市了。在 Tizen 陣營(yíng),國(guó)內(nèi)有中興、百度涉及了。 Qt 公司有專門針對(duì)移動(dòng)開(kāi)發(fā)的商業(yè)版本,20 歐元或 25 美元一個(gè)月。不做商業(yè)可以無(wú)視這個(gè),用開(kāi)源版本也是可以開(kāi)發(fā)如 Android、iOS、WinPhone 應(yīng)用的。
應(yīng)用范圍
Qt 雖然經(jīng)常被當(dāng)做一個(gè) GUI 庫(kù),用來(lái)開(kāi)發(fā)圖形界面應(yīng)用程序,但這并不是 Qt 的全部;Qt 除了可以繪制漂亮的界面(包括控件、布局、交互),還包含很多其它功能,比如多線程、訪問(wèn)數(shù)據(jù)庫(kù)、圖像處理、音頻視頻處理、網(wǎng)絡(luò)通信、文件操作等,這些 Qt 都已經(jīng)內(nèi)置了。
Qt 是應(yīng)用程序開(kāi)發(fā)的一站式解決方案,有了 Qt,你就可以高枕無(wú)憂了!Qt 本身包含的模塊也日益豐富, 一直有新模塊和第三方模塊加入進(jìn)來(lái)。 大部分應(yīng)用程序都可以使用 Qt 實(shí)現(xiàn),除了與計(jì)算機(jī)底層結(jié)合特別緊密的,例如驅(qū)動(dòng)開(kāi)發(fā),它直接使用硬件提供的編程接口,而不能使用操作系統(tǒng)自帶的函數(shù)庫(kù)。
下面的軟件都使用 Qt 開(kāi)發(fā):WPS、YY語(yǔ)音、Skype、豆瓣電臺(tái)、蝦米音樂(lè)、淘寶助理、千牛、暴雪的戰(zhàn)網(wǎng)客戶端、VirtualBox、Opera、咪咕音樂(lè)、谷歌地圖、Photoshop Album 等。 Linux 也是嵌入式的主力軍,廣泛應(yīng)用于消費(fèi)類電子、工業(yè)控制、軍工電子、電信/網(wǎng)絡(luò)/通訊、航空航天、汽車電子、醫(yī)療設(shè)備、儀器儀表等相關(guān)行業(yè)。
Qt 雖然也支持手機(jī)操作系統(tǒng),但是由于 Android 本身已經(jīng)有 Java 和 Kotlin,iOS 本身已經(jīng)有 Objective-C 和 Swift,所以 Qt 在移動(dòng)端的市場(chǎng)份額幾乎可以忽略。總起來(lái)說(shuō),Qt 主要用于桌面程序開(kāi)發(fā)和嵌入式開(kāi)發(fā)。
