Qt學習(1)

Qt學習(1)——簡介git

 

一、什麼是Qt    正則表達式

    Qt是一個跨平臺應的開發庫,主要是開發圖形用戶界面(Graphical User Interface,GUI)應用程序,固然也能夠開發非圖形的命令行(Command User Interface,CUI)應用程序。 Qt支持衆多的操做系統平臺,應用普遍。使用Qt,只須要一次性開發應用程序,無需從新編碼,便可跨不一樣桌面和嵌入式操做系統部署這些應用程序。Qt是面向對象的框架,使用特殊的代碼生成擴展(元對象編譯器)以及一些宏,易於擴展,容許組建編程。固然 Qt 庫自己包含的功能模塊也日益豐富, 一直有新模塊和第三方模塊擴充。除了與操做系統底層結合特別緊密的,如驅動開發, 須要利用操做系統自己的函數庫實現以外,其餘大部分的應用程序開發均可以用 Qt 實現的。 Qt 是純 C++ 開發的,因此學好 C++ 比較有必要。Qt 還存在 Python、Ruby、Perl 等腳本語言的綁定, 也就是說可使用腳本語言開發基於 Qt 的程序。開源社區就是這樣,好東西就會被派生擴展,處處使用, 愈來愈壯大。編程

(1)、優良的跨平臺特性:安全

    Qt 支持下列操做系統: Microsoft Windows 95/98, Microsoft Windows NT,Linux, Solaris,SunOS,HP-UX,Digital UNIX (OSF/1,Tru64),Irix,FreeBSD,BSD/OS,SCO,AIX,OS390,QNX 、VxWorks、Android、IOS、WinPhone等。框架

(2)、面向對象:ide

     Qt 的良好封裝機制使得 Qt 的模塊化程度很是高,可重用性較好,對於用戶開發來講是很是方便的。Qt 提供了一種稱爲 signals/slots 的安全類型來替代 callback,這使得各個元件之間的協同工做變得十分簡單。模塊化

(3)、豐富的API:函數

     Qt 包括豐富的 C++ 類,還提供基於模板的 collections,serialization, file, I/O device, directory management, date/time 類。甚至還包括正則表達式的處理功能,支持 2D/3D 圖形渲染,支持 OpenGL。學習

    初學者關於 Qt 編程一個可能的困惑就是 QML 和 C++ 該用哪一個來編程,在 Qt4 時代主流的是傳統部件(或叫控件)編程,所用的語言通常是 C++。 Qt5 誕生之時,正是手機移動設備蓬勃發展的時候,而傳統的 C++ 部件編寫的界面對手機應用程序卻不是很方便,好比手機屏幕顯示隨意翻轉, 這在傳統桌面程序裏基本遇不到,誰會將22寸顯示器翻過來轉過去呢。 爲了適應手機移動應用開發, Qt5 將 QML 腳本編程提到與傳統 C++ 部件編程相同的高度,力推 QML 界面編程,固然 QML 主要用於手機移動應用程序。 QML 包含大量使用手機移動設備的功能模塊,好比基本部件(QtQuick模塊)、GPS定位、渲染特效、藍牙、NFC、WebkKit等等。 簡單地說,若是是傳統桌面應用程序,使用 C++ 部件開發就足夠了,若是學習目標是手機移動應用開發,QML 是更好的選擇。 本教程是針對傳統 C++ 部件開發的,QML 目前不在考慮範圍以內。 關於 QML 編程已經有相關書籍上市,讀者能夠去搜索 QML 、QtQuick 或 Qt5 等方面的書籍進行選購學習。 學習 QML 以前建議先學 C++ 部件編程,不然遇到底層問題,QML 不必定好處理,一般 QML 也會調用 C++ 編寫的插件來完善功能。網站

二、Qt的歷史

     Qt 最先是1991年由挪威的 Eirik Chambe-Eng 和 Haavard Nord 開發的, 他們隨後於1994年3月4號正式成立奇趣科技公司(Trolltech)。Qt本來是商業受權的跨平臺開發庫, 在2000年奇趣科技公司爲開源社區發佈了遵循 GPL(GNU General Public License)許可證的開源版本。 在2008年,諾基亞公司收購了奇趣科技公司,並增長了 LGPL(GNU Lesser General Public License)的受權模式。 諾基亞聯合英特爾利用 Qt 開發了全新的智能手機系統 MeeGo,惋惜遭遇了微軟木馬屠城,諾基亞被迫放棄了 MeeGo, 而 Qt 商業受權業務也於2011年3月出售給了芬蘭IT服務公司 Digia。固然好消息是 Digia 於2014年9月宣佈成立 Qt Company 全資子公司,獨立運營 Qt 商業受權業務。目前 Qt 公司大力推廣移動平臺開發和商業應用, 總的來講 Qt 歷經曲折,如今算是步入正軌了。

三、Qt和智能手機

    Qt 目前支持主流的 Android、iOS、WinPhone 等智能機操做系統。MeeGo 是基於 Qt 開發的操做系統,因爲被諾基亞拋棄了, 只剩一代絕版諾基亞 N9 手機。諾基亞手機部門出售給微軟以後,大部分諾基亞手機系統開發人員都被遣散了。 原來諾基亞的一部分人成立新的 Jolla(卓藍)公司,發佈了 MeeGo 的衍生版智能手機系統 Sailfish(旗魚),相應的手機和平板也發佈開賣了。 另外一撥人投靠了 Tizen(泰澤),Tizen 是英特爾和三星力推的智能手機系統,該系統整合了 Limo 和 MeeGo,由於 MeeGo 系統被諾基亞拋棄,英特爾實際上是被出賣了,因此只能聯合三星重造智能手機系統 Tizen。目前基於 Tizen 的首款手機三星 Z1 在印度上市了。在 Tizen 陣營,國內有中興、百度涉及了。Qt 開源項目裏也有 Qt for Tizen 版本,有興趣的能夠去搜搜。

    Qt 公司有專門針對移動開發的商業版本,20 歐元或 25 美圓一個月。不作商業能夠無視這個,用開源版本也是能夠開發如 Android、iOS、WinPhone 應用的。

注:本節最後附上關於 Qt 的兩個官方網站連接:
Qt 商業公司:http://www.qt.io/
Qt 開源項目:http://qt-project.org/

 

本博客主要是記錄學習各位前輩的文章,若有過分引用,請告知。寫下來主要是加深印象,方便往後查看。

原貼:https://lug.ustc.edu.cn/sites/qtguide/

做者:Winland(winland0704@126.com)

相關文章
相關標籤/搜索