本文字數:1660,閱讀時長大約:15分鐘
世界上的GUI庫多如牛毛,有的開源,有的收費,有的可以做手機app開發,有的可以做桌面應用,有的只能用在某個系統,有的支援跨平臺。基於不同的程式語言,人們又開發出不同的圖形框架,比如Java有AWT、Swing;C#有WinForm和WPF;C++有MFC、QT、wxWidgets等。在C++的庫中,QT憑藉對跨平臺的支援、簡單易用、開發效率高等特性,成為最受歡迎的GUI庫之一。
一、Qt是什麼
引用百度百科一句話概括:“Qt是一個1991年由Qt Company開發的跨平臺C++圖形使用者介面應用程式開發框架。”
Qt支援市場上常用的作業系統,並且開發出的圖形介面非常優美。它是完全物件導向的,容易擴充套件,允許真正的元件程式設計。
二、平臺支援
Qt不僅支援桌面系統,還支援手機和嵌入式的應用。桌面系統包括Windows、Unix、Linux、Mac,手機系統支援安卓和iOS等。和Java不同的是,它沒有執行在額外的一層虛擬機器上,而是針對不同的系統提供了相應的套件和編譯器。Qt的跨平臺支援使得它對不同平臺的開發部署更為簡單。
三、使用Qt開發的應用
使用Qt開發的應用很多,比較著名的有Linux的桌面環境KDE、WPS、Skype、VirtualBox虛擬機器、谷歌地圖、VLC播放器等等,其中KDE已經是Linux的主流桌面應用之一。
四、Qt的優點
使用Qt開發有很多優點,比如:
- 跨平臺支援:如果你希望程式執行在多個平臺下,同時又降低開發成本,Qt是很好的選擇
- 簡單易學:封裝好,幾行簡單的程式碼就可以開發出簡單的程式,不需要對作業系統底層有太多瞭解
- 資料豐富:網路上有很多的資料,社群氛圍好,可以得到很多幫助
- 介面漂亮:Qt很容易開發出比較炫酷的效果,而MFC、wxWidgets等就比較麻煩
- 獨立安裝:不像Java需要安裝虛擬機器,C#需要.net,Qt會編譯成原生程式碼,不需要額外庫的支援
因為Qt的種種優勢,它在市場上的份額越來越高,得到很多公司的青睞。下面列舉了獵聘上一些Qt工程師的職位,月薪基本上在2萬-3萬之間。
五、Qt的發展史與版本
Qt幾經輾轉,被很多公司收購過,換了很多東家:
- 1991年由挪威的一家計算機公司Trolltech(奇趣科技)開發
- 1996年進入商業領域,成為Linux KDE的基礎
- 2008年奇趣科技被芬蘭巨頭諾基亞收購
- 2012年諾基亞瀕臨破產,Qt出售給了芬蘭的一家IT公司Digia
Qt的版本:
- Qt 1 - 3都是由奇趣科技開發的
- 諾基亞開發了Qt 4版本
- Digia開發了Qt 5,但是Qt 5對 Qt 4不相容
另外Qt有商業版和免費版。兩者的程式碼都是一致的,但商業版可以得到售後服務,比如培訓和技術支援。免費版需要遵從LGPL協議,簡單說,你需要開放所有使用了LGPL協議的程式碼,所以使用免費版Qt進行商業開發的同學要注意商業糾紛的風險。
六、Qt的下載與安裝
(1)下載
Qt有線上安裝包和離線安裝包。線上安裝包的使用體驗不是很好,經常會卡頓在99%的進度不能繼續,所以推薦大家使用離線安裝包。安裝包的下載可以使用以下兩個網站:
http://www.qtcn.org/bbs/read-htm-tid-1075.html
https://www.qt.io/offline-installerst
比如下載Windows下的Qt 5.14的離線安裝包可以選擇下面這個連結:
(2)安裝
下載好後,前面基本一直點選下一步就可以了:
這一步要註冊Qt賬戶,需要一個郵箱地址,可以按提示操作
指定安裝路徑
下面需要選擇套件,這些套件都包含專屬的編譯器。
-
MSVC是Desktop Qt MSVC的套件,需要安裝Visual Studio相對應的版本
-
MinGW是Desktop Qt MinGW的套件。MinGW是Minimalist GNU for Windows的縮寫,是在Windows平臺上使用的GNU工具集匯入庫的集合,這個集合包括了C編譯器gcc,C++編譯器g++,和偵錯程式gdb等工具。如果不使用Visual Studio,可以選擇這個套件
- UWP是針對Win 10以後UWP程式的套件
- Android,如果需要開發安卓app,需要勾選這個套件
- Sources可以下載Qt的原始碼
- Qt的其他元件,比如Qt Charts、Qt Quick 3D等,可以根據需要選擇,注意括號裡寫著(Deprecated)的套件是為了相容老版本,如果是開發新程式不用選擇
- Developer and Desinger Tools裡面Qt Creator是一定要選的,如果使用Qt Creator開發,MinGW也要勾選上
接下來都點選下一步就可以了
接下來開始安裝
安裝成功
七、總結
Qt有著良好的跨平臺支援、介面優美、簡單易用、學習資料豐富等優點,和其他的GUI框架相比受到開發者們的廣泛歡迎,因此想要從事圖形介面開發的同學可以考慮學習Qt。
推薦閱讀:
獲取知識乾貨、增加面試經驗、瞭解職場人生
歡迎關注微信公眾號