Qt簡介 及與MFC、GDK+的比較

Qtgit

  C++圖形用戶界面應用程序開發框架。程序員

Qt的由來和發展  正則表達式

一、QT由來
  Haavard Nord 和Eirik Chambe-Eng於1991年開始開發"Qt",1994年3月4日創立公司,早名爲Quasar Technologies,而後改名爲Troll Tech,而後在改成Trolltech,中文名是「奇趣科技」。2008年6月17日被NOKIA公司收購,以加強該公司在跨平臺軟件研發方面的實力,改名Qt Software。
該工具包名爲Qt是由於字母 Q在Haavard的Emacs字體特別漂亮,而「t」表明「toolkit」,靈感來自Xt,X toolkit。
2009年5月11日,諾基亞Qt Software 宣佈 Qt源代碼管理系統面向公衆開放,Qt 開發人員可經過爲 Qt 以及與 Qt 相關的項目貢獻代碼、翻譯、示例以及其餘內容,協助引導和塑造 Qt將來的發展。爲了便於這些內容的管理,Qt Software 啓用了基於 Git 和 Gitorious 開源項目的Web 源代碼管理系統。
  在推出開放式 Qt 代碼庫的同時,Qt Software 在其網站發佈了其產品規劃(Roadmap)。其中概述了研發項目中的新功能,展示了現階段對 Qt 將來發展方向的觀點,以期鼓勵社區提供反饋和貢獻代碼,共同引導和塑造 Qt 的將來。
二、Qt特性
  本質上來講, Qt是一個跨平臺的C++應用程序開發框架,有時又被稱爲C++部件工具箱。Qt被用在KDE桌面環境、Opera、Google Earth、Skype、Adobe Photoshop Album和VirtualBox的開發中。它是諾基亞(Nokia)的Qt Development Frameworks 部門的產品。使用 Qt ,只需一次性開發應用程序和用戶界面,無須從新編寫源代碼,即可跨不一樣桌面和嵌入式操做系統部署這些應用程序。
基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等圖形界 面庫和 Windows 平臺上的 MFC,OWL,VCL,ATL 是同類型的東西,可是 Qt 具備下列優勢:
a) 優良的跨平臺特性:
  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 等等。
b) 面向對象
  Qt 的良好封裝機制使得 Qt 的模塊化程度很是高,可重用性較好,對於用戶開發來講是很是 方便的。 Qt 提供了一種稱爲 signals/slots 的安全類型來替代 callback,這使得各個元件 之間的協同工做變得十分簡單。
c) 豐富的 API
  Qt 包括多達 250 個以上的 C++ 類,還替供基於模板的 collections, serialization, file, I/O device, directory management, date/time 類。甚至還包括正則表達式的處理 功能。
d) 支持 2D/3D 圖形渲染,支持 OpenGL
e) 大量的開發文檔
f) XML 支持
  近諾基亞發佈了Qt 4.6——新版的跨平臺應用程序和用戶界面框架。Qt 4.6 對全新平臺提供支持,具備強大的全新圖形處理能力並支持多點觸摸和手勢輸入,讓高級應用程序和設備的開發過程變得更加輕鬆和快樂。
諾基亞應用服務和框架副總裁Sebastian Nystrom說:「不管是什麼樣產品設計或開發平臺,Qt 4.6的發佈對開發人員來講都是一件使人興奮的事。」
「開發人員能夠垂手可得地爲桌面平臺或設備(包括數億部基於Symbian 和 Maemo系統的設備)開發出具備視覺美感和網絡鏈接功能的應用程序。」
Nystr?m補充說:「開發人員將很是喜歡使用Qt直觀的編程界面,快速開發出功能強大、外表美觀的應用程序。」
更多平臺
  Qt 4.6 首次包含了對Symbian 平臺的支持,並在其所支持的平臺中新增了 Windows 七、Apple Mac OS 10.6 (雪豹) 和即將上市的Maemo 6。此外還爲實時操做系統QNX 和 VxWorks提供了網絡社區支持。對Maemo 5 的支持目前也已進入研發階段,其技術預覽版第二版已於今日發佈。
  Qt 對 Symbian 和 Maemo 的支持首次爲開發人員創造了使用同一代碼庫同時針對這兩個平臺進行開發的機會。可以跨平臺分享代碼就意味着開發人員所開發的應用程序上市的速度將更快,影響的設備用戶羣將更廣。
  Qt Mobility項目下的全新Qt API技術預覽版也於今日同時發佈。這些跨平臺的API爲開發人員提供了多種功能,如導航類設備的定位功能,以及信息發送和接收、聯繫人和網絡鏈接管理等。
外觀更炫
  Qt 4.6是在4.5圖形加強功能的基礎上建立的,進一步強化了這些圖形功能,添加了全新的動畫框架(Animation Framework)——包括直觀的狀態機功能——以及全新的高級圖形功能,如不透明、陰影、閃光和濾鏡等。
使用手指
  Qt4.6使人興奮的新功能之一就是能夠建立多點觸摸應用程序。這種全新的基於多觸點和手勢的輸入法(如輕觸和動力滾動)使Qt4.6框架的功能更爲強大,用戶能夠經過觸覺以動態的方式與應用程序和設備進行互動。
性能更強
  傳統軟件開發觀點認爲高級用戶界面功能的得到一般是以性能嚴重受損做爲代價的。Qt 4.6 對此觀點提出了挑戰,爲此投入大量工做,既要得到佳性能,又要能讓開發人員所開發的產品達到用戶所要求的「使人驚歎」的效果。
性能提高主要包括:一個通過高度優化、從新編寫的 Qt GraphicsView 渲染算法、一個全新的 OpenGL 繪圖引擎、WebKit、使用 OpenVG 對 2D 矢量圖形的支持,以及對全新 DirectFB 的支持。
新工具
  在發佈 Qt 4.6 的同時,做爲 Qt 開發跨平臺 IDE 的 Qt Creator 也發佈了更新版本。Qt Creator 1.3 和 Qt 4.6共同構成的 Qt SDK,包含了開發跨平臺應用程序所需的所有功能。(來自programbbs)
三、用QT能作什麼?
在QT的官方網站談到了15年來取得了的成就,它幫助世界各地和各個行業組織開發出先進的高度創新的應用和設備。
使用Qt,衆多的開發商和公司已經可以:
        ●    減小了近50%的開發時間。
        ●    加速了50%的開發速度因爲代碼可維護
        ●    減小了50%的代碼量
Qt的用戶怎麼說?
        ●    94%報告說,Qt的知足或超過其發展的指望
        ●    92%會向他人推薦使用Qt
        ●    76%報告由於使用Qt,生產率提升
Qt的應用領域:
  有不少出名的例子是都是使用Qt開發的。例如: Arora(一款跨平臺的開源網頁瀏覽器 )、eva(Linux版QQ聊天軟件)、FreeMat(一個自由開源的數值計算環境和編程語言 )、Gadu-Gadu(即時通訊軟件 )、Google地球(Google Earth)(三維虛擬地圖軟件)、ImageVis3D 、KDE(著名的桌面環境)、Elibs(一個許多KDE程序都使用的共享庫,如Amarok、K3b、KDevelop、KOffice等)、Last.fm播放器(著名的互聯網音樂社區網站的桌面客戶端)、Motorola A760(UI 以 Qt/Embedded 建構) 、MythTV9(開源的數字視頻錄製軟件)、Opera(著名的網頁瀏覽器)、Qterm(跨平臺的BBS軟件)、Qt Extended、Quantum GIS、Skype(一個使用人數衆多的基於P2P的VOIP聊天軟件)、SMPlayer(跨平臺多媒體播放器 )、TeamSpeak(跨平臺的音效通訊軟件) 、Tlen.pl:波蘭人發明的 instant messaging client TOra 、VirtualBox(虛擬機軟件)、Xconfig(Linux的Kernel配置工具) 、chmcreator(開源的chm開發工具)……
 
Qt是一個跨平臺圖形庫,MFC是WINDOWS API封裝的C++形式,GTK+是 LINUX下桌面系統比較通用的庫。
 
QT與MFC的簡單比較:
 
QT的應用主要在Linux下,可是它自己是跨平臺的,也支持其餘操做系統,是如今比較著名的界面庫,著名的KDE就是使用QT開發的。MFC是提供給VC的,可是它主要是代碼庫,不像VCL和編譯器掛鉤不少,可是MFC主要是對windows API的封裝,因此只能用於windows平臺
根據你所說的方面,簡單比較一下:
1.開發速度
  總體來講可能MFC會快捷一些,由於windows平臺的開發工具大多很智能,由於立足於windows的開發人羣很廣,從菜鳥到專業人士,可是QT因爲基於Linux,可用的開發工具很少,大都比較專業,可能是第三方產品,並且集成度不大,第三方庫也沒有MFC的多,從這一點MFC略勝一籌,可是QT自從被Nokia收購後,官方發佈了跨平臺集成開發環境QTCreator,因此以後走向就很差說了,我的整體感受QT Creator和VS.net差距比較大,還需改進
  可是從庫自己來講QT集成的功能較MFC龐大,並且使用的封裝技術信號和槽也是比較受到讚許的,好比QT Script爲QT提供嵌入式腳本,QT界面庫支持CSS,因此QT作出來的界面比MFC要好,並且比較容易,MFC就須要藉助第三方庫了。由於MFC是淺層封裝(最新的2008 sp1加入了BCG的高級界面庫,可能有所改善)windows SDK,以下降使用windows SDK引發的開發效率的下降,和開發難度的增長。因此QT庫是比MFC優秀的,兩個庫都經受了時間的考驗,穩定性都很高,Bug幾乎沒有
2.運行效率
  MFC因爲其淺層封裝的特色,因此運行效率是比較高的,加上vc對windows的針對性優化,總體性能是比較高的,可是若是加入第三方庫就不敢保證了QT由於庫比較龐大,封裝層次較深,因此運行效率較MFC爲低,可是在如今的機器配置下,C#你們都不介意了,這些會引發人們的介意嗎?
3.應用範圍
  如今windows的普及範圍誰能比過,因此MFC的客戶量比較多,QT主要是Linux下的開發人員在使用,但MFC也只是得益於windows(感受又是一次捆綁戰略),MFC不支持嵌入式開發(主要指手機平臺),可是QT有對應的模塊
4.學習難度
  QT的封裝哲學比較明晰,和系統隔離的比較好,因此我的感受門檻不高
  MFC較難精通,由於深刻開發以後SDK仍是要了解的,不然程序感受比較兒童化,呵呵
 
QT與GTK+的簡單比較: 
 
  雖然Linux下的大多數開發是基於字符界面的,但在Linux環境下也能夠開發出美觀大方的圖形界面。通過多年的發展,目前已經存在多種用於在Linux下開發圖形界面程序的開發包,其中較爲經常使用的是Qt和GTK+。    Qt是一個跨平臺的圖形用戶界面開發庫,它不只支持Linux操做系統,還支持全部類型的UNIX以及Windows操做系統。Qt良好的封裝機制使它模塊化程度很是高,可重用性很強,Qt提供了豐富的API供開發人員使用。使用Qt開發的圖形用戶界面程序具備良好的穩定性和健壯性。桌面環境KDE(K Desktop EnVironment即K桌面環境)就是使用Qt做爲其底層庫開發出來的。    因爲Qt使用C++面向對象編程語言做爲其開發語言,而許多在Linux下從事開發的程序員更喜歡或更習慣於用C語言。GTK+使用C語言做爲開發語言。它基於LGPL受權,所以GTK+是開放源代碼並且徹底免費的。GTK+簡單易用,執行效率高。基於這些緣由,GTK+擁有爲數衆多的擁護者。Linux的桌面環境GNOME就是創建在GTK+基礎上。
相關文章
相關標籤/搜索