Qt
Qt的由來和發展
1、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 的未來。
2、Qt特性
本質上來說, Qt是一個跨平台的C++應用程序開發框架,有時又被稱為C++部件工具箱。Qt被用在KDE桌面環境、Opera、Google Earth、Skype、Adobe Photoshop Album和VirtualBox的開發中。它是諾基亞(Nokia)的Qt Development Frameworks 部門的產品。使用 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 的未來。
2、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 7、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)
3、用QT能做什么?
在QT的官方網站談到了15年來取得了的成就,它幫助世界各地和各個行業組織開發出先進的高度創新的應用和設備。
使用Qt,眾多的開發商和公司已經能夠:
● 減少了近50%的開發時間。
● 加速了50%的開發速度由於代碼可維護
● 減少了50%的代碼量
Qt的用戶怎么說?
● 94%報告說,Qt的滿足或超過其發展的期望
● 92%會向他人推薦使用Qt
● 76%報告因為使用Qt,生產率提高
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 7、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)
3、用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.應用范圍
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還是要了解的,否則程序感覺比較兒童化,呵呵
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+基礎上。
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+基礎上。