Qt是一個針對桌面、嵌入式、移動設備的一個跨平臺的應用程序開發框架,支持的平臺包括Linux、OS X、Windows、VxWorks、QNX、Android、iOS、BlackBerry(黑莓)、Sailfish OS(旗魚操做系統)等。前端
Qt 1991年由Trolltech-奇趣科技(成立於1994年)開發,2008年,Trolltech被Nokia收購,2012年,Qt被Digia收購。git
Qt是基於C++編寫的框架,它既能夠開發GUI程序,也可用於開發非GUI程序,好比控制檯工具和服務器。預處理器,MOC(全稱:Meta-Object Compiler-元對象編譯器)用於擴展C++,如:信號和槽的特性。在編譯以前,先使用MOC分析Qt擴展的C++源文件(檢測是否包含Q_OBJECT宏),而後生成符合C++標準的源文件(新文件名將會由moc_加上原文件名構成)。所以框架自己和應用程序/庫使用它能被任何符合標準C++的編譯器(像Clang、GCC、 ICC、MinGW 和MSVC)所編譯。正則表達式
Qt的第一個商業版本於1995年推出,隨後Qt的發展就很快了,下面是Qt發展史上的一 些里程碑,從以前的Qt1.x開始到如今的Qt5.x。編程
版本 | 發佈日期 |
---|---|
1.40 | 10 July 1998 |
1.41 | 2 October 1998 |
1.42 | 19 December 1998 |
1.44 | 13 March 1999 |
2.0 | 26 June 1999 |
2.1 | 13 April 2000 |
2.2 | 7 December 2000 |
2.3 | 8 March 2001 |
3.0 | 16 October 2001 |
3.1 | 14 November 2001 |
3.2 | 24 July 2003 |
3.3 | 5 February 2004 |
Trolltech在2005年6月28發佈了Qt4.0,介紹了框架的五個新技術:後端
版本 | 發佈日期 | 新特性 |
---|---|---|
4.1 | 20 December 2005 | 推出集成SVG微小的支持,一個PDF的後端Qt打印系統,以及其餘一些功能。 |
4.2 | 4 October 2006 | 介紹了Windows Vista的支持,部件的CSS樣式支持,以及QGraphicsView框架-在屏幕上高效渲染成千上萬個2D對象,以取代Qt3.x中的QCanvas類。 |
4.3 | 30 May 2007 | 改進了Windows Vista支持,改進了OpenGL引擎、SVG文件的生成,增長了QtScript(基於QSA的ECMAScript腳本引擎)。 |
4.4 | 6 May 2008 | 特性包含了改進multimedia的支持(使用Phonon),加強XML支持,集中共享內存的IPC框架,以及WebKit集成。 |
4.5 | 3 March 2009 | 主要包括功能有QtCreator,改進圖形引擎,WebKit的集成,OpenDocument格式寫入支持和新的許可選項,以及OS X Cocoa框架的支持。 |
4.6 | 1 December 2009 | 新的API框架-動畫、手勢、多點觸控。支持Symbian、Windows 7和Mac OS X 10.6,支持擴展一些Unix系統。也取得了總體性能的改進。 |
4.7 | 21 September 2010 | QML 和 Qt Quick |
4.8 | 15 December 2011 | Qt的平臺抽象化,支持單線程OpenGL,多線程HTTP,優化了文件系統訪問。 |
Qt5於2012年12月19正式發佈,這個新版本標誌着平臺的重大變化,硬件加速的顯卡,QML和JavaScript發揮了重要做用。傳統的C++ - 僅QWidgets繼續獲得支持,但沒有重新體系結構的性能改進中受益,Qt5帶來了速度及用戶界面上的顯著改進,Qt5開發框架移動至qt-project.org。外部開發者能夠爲Digia公司提交補丁,並讓他們審查。瀏覽器
版本 | 發佈日期 | 新特性 |
---|---|---|
5.0 | 19 December 2012 | 對Qt4.x進行一系列重大改革。完成Wayland的支持。 |
5.1 | 3 July 2013 | 新模塊以及Android和iOS實驗性的支持技術預覽。 |
5.2 | 12 December 2013 | 第一個官方支持Android和iOS的版本。 |
5.3 | 20 May 2014 | 集中於穩定性和可用性 |
5.4 | 10 December 2014 | 完整的WinRT和Windows Phone支持。介紹基於Chromium的Qt WebEngine內部組件,將在將來的版本中取代QtWebKit。動態的GL圖形切換在Windows(ANGLE或OpenGL)後臺,本地化的「外觀和感受」在QtQuick的控制在Android平臺的後端,引入Qt WebChannels提供QObject到WebSockets的橋樑。最初僅使用Qt WebKit的集成,但還正在5.5下進行Qt WebEngine集成 |
5.5 | 1 July 2015 | Qt5.5根據官方網站提供的功能:新模塊: Qt 3D、Qt Canvas 3D、Qt Location。過期的模塊的:Qt WebKit、Qt Declarative (Qt Quick 1)、Qt Script。藍牙API的最終版本,新的視頻過濾框架,Camera和QML MediaPlayer改善iOS,適用於Linux的NFC,SSL/TLS改進Qt Network |
5.6 | Alpha release: 8 September 2015 Final release plan: 8 December 2015 | 值得注意的改進:Qt Core:一些性能改進,包括減小動態性能的內存使用狀況和性能最佳化的QString Qt Network:支持HTTP重定向 Qt GUI:改進了跨平臺的OpenGL ES3.0和3.1 Qt Multimedia:添加QML類型播放列表 Qt WebEngine:基於Chromium 45,自定義URL方案的API,攔截和阻止網絡請求,並跟蹤或阻止Cookie QtQML:減小內存消耗 嵌入式平臺:支持Intel Atom-based NUCs 過期的模塊:Qt Script、Qt Enginio 已刪除模塊:Qt WebKit, Qt Declarative (Qt Quick 1) |
Qt支持下述平臺:安全
Qt同X Window上的 Motif、Openwin、GTK 等圖形界面庫和 Windows平臺上的 MFC、OWL、VCL、ATL是同類型的東西,可是 Qt 具備下列優勢:服務器
優良的跨平臺特性:
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 等等。 markdown
面向對象
Qt 的良好封裝機制使得 Qt 的模塊化程度很是高,可重用性較好,對於用戶開發來講是很是 方便的。 Qt 提供了一種稱爲 signals/slots 的安全類型來替代 callback,這使得各個元件 之間的協同工做變得十分簡單。 網絡
豐富的 API
Qt包括多達250個以上的C++類,還替供基於模板的collections、serialization、 file、I/O device、 directory management、date/time 類。甚至還包括正則表達式的處理功能。
支持 2D/3D 圖形渲染,支持 OpenGL
大量的開發文檔
XML 支持
在發佈 Qt 4.6 的同時,做爲 Qt 開發跨平臺 IDE 的Qt Creator也發佈了更新版本。Qt Creator 1.3 和 Qt 4.6共同構成的 Qt SDK,包含了開發跨平臺應用程序所需的所有功能。
Qt Creator是一個用於Qt開發的輕量級跨平臺集成開發環境。Qt Creator可帶來兩大關鍵益處:提供首個專爲支持跨平臺開發而設計的集成開發環境 (IDE),並確保首次接觸Qt框架的開發人員能迅速上手和操做。即便不開發Qt應用程序,Qt Creator也是一個簡單易用且功能強大的IDE。
Qt Creator 包括項目生成嚮導、高級的 C++ 代碼編輯器、瀏覽文件及類的工具、集成了 Qt Designer、Qt Assistant、Qt Linguist、圖形化的 GDB 調試前端,集成 qmake 構建工具等。
QtCreator 主要是爲了幫助新 Qt 用戶更快速入門並運行項目,還可提升有經驗的 Qt 開發人員的工做效率。
語法標識和代碼完成功能輸入時進行靜態代碼檢驗以及提示樣式上下文相關的幫助代碼摺疊括號匹配和括號選擇模式高級編輯功能
集成了領先的版本控制軟件,包括 Git、Perforce 和 Subversion開放式文件,無須知曉確切的名稱或位置搜索類和文件跨不一樣位置或文件沿用符號在頭文件和源文件,或在聲明和定義之間切換
集成了特定於 Qt 的功能,如信號與槽 (Signals & Slots)圖示調試器, 對 Qt 類結構可一目瞭然集成了 Qt Designer 可視化佈局和格式構建器只需單擊一下就可生成和運行 Qt 項目
Qt Designer被稱爲Qt設計師,用於設計和構建圖形用戶界面(Qt Widgets)。你能夠組合和自定義窗口或對話框(所見即所得),並使用不一樣的風格和分辨率進行測試。用Qt Designer建立的窗口部件和表格無縫集成編程代碼,採用Qt信號和槽機制,這樣就能夠輕鬆地分配圖形元素的行爲。在Qt設計師中設置的全部屬性能夠動態地在代碼中進行更改。此外,相似插件推廣和自定義插件功能,可使用本身的組件來使用Qt Designer。
注意:你也能夠選擇使用Qt Quick來設計用戶界面,而不是Qt Widgets。這樣更容易寫各類各樣的應用。它能夠徹底定製外觀,觸摸反應的元素,流暢的動畫過渡,支持OpenGL圖形加速功能。若是剛接觸Qt Designer,能夠看看Qt設計師文檔。有關如何使用Qt設計師,請參閱Qt設計師快速入門。
Qt Linguist被稱爲Qt語言家。主要任務是讀取翻譯文件、爲翻譯人員提供友好的翻譯界面,是用於界面國際化的重要工具。它能幫助你很容易讀懂C++語言。
lupdate能夠把.h、.cpp、.ui中須要翻譯的字符串提取出來造成.ts文件,而後用linguist翻譯。用lerealse生成.qm。
翻譯一個含有tr()調用的Qt應用程序須要如下三步:
1. 運行ludate,從應用程序的源代碼中提取全部用戶可見的字符串。
2. 使用Qt Linguist翻譯該應用程序。
3. 運行lrelease,生成二進制.qm文件,應用程序可使用QTranslator加載這個文件。
若是開發工程中出現翻譯改動,能夠屢次執行此過程!
Qt Assistant被稱爲Qt助手,是Qt自帶的一款可定製、可從新發行的幫助文件瀏覽器。它支持HTML文件,用戶能夠利用其定製本身的功能強大的幫助文檔瀏覽器。