一、Qt是什么
簡介
Qt是一個1991年由Qt Company開發的跨平台C++圖形用戶界面應用程序開發框架。它既可以開發GUI程序,也可用於開發非GUI程序,比如控制台工具和服務器,並且是開源的,需要遵循LGPL或GPL協議。簡單來說,QT可以很輕松的幫你做帶界面的軟件,甚至不需要你投入很大精力。
支持的平台:
- MS/Windows - 95、98、NT4.0、ME、2000、XP 、Vista、Win7、win8、win2008、win10
- Unix/X11-Linux、SunSolaris、HP-+UX、CompaqTru64 UNIX、IBMAIX、SGI IRIX、FreeBSD、BSD/OS和其它很多X11平台
- Macintosh -Mac OS X
- Embedded - 有幀緩沖(framebuffer)支持的嵌入式Linux平台,Windows CE
- Symbian、Symbian^3、Symbian Anna、Symbian Belle、MeeGo
二、Qt的由來和發展
- 1、Qt是一個1991年由奇趣科技開發的跨平台C++圖形用戶界面應用程序開發框架。它既可以開發GUI程序,也可用於開發非GUI程序,比如控制台工具和服務器。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等圖形界 面庫和 Windows 平台上的 MFC,OWL,VCL,ATL 是同類型的東西。
- 2.、Qt是面向對象的框架,使用特殊的代碼生成擴展(稱為元對象編譯器(Meta Object Compiler, moc))以及一些宏,易於擴展,允許組件編程。
- 3.、2008年,奇趣科技被諾基亞公司收購,QT也因此成為諾基亞旗下的編程語言工具。
- 4.、2012年,Qt被Digia收購。
- 5.、2014年4月,跨平台集成開發環境Qt Creator 3.1.0正式發布,實現了對於iOS的完全支持,新增WinRT、Beautifier等插件,廢棄了無Python接口的GDB調試支持,集成了基於Clang的C/C++代碼模塊,並對Android支持做出了調整,至此實現了全面支持iOS、Android、WP。
- 6.、Qt的版本眾多,可分為兩大家族:桌面平台家族與嵌入式平台家族。對於用戶來說,桌面家族和嵌入式家族所調用的函數與類是一致的,這樣當你移植一個系統時所做的改動就很少,甚至只需重新編譯。Qt與Java同屬跨平台的開發工具,但原理卻完全不同:Qt的跨平台特征是在代碼級實現而非運行級,不同的平台需要單獨編譯,因此也不需要什么虛擬機。如果說Java是“一次編譯,到處運行”的話,Qt就是“一次編碼,到處編譯”。這種差異導致的結果是Qt開發的程序運行效率要高於Java開發的程序,可以用於工控等有實時性要求的場合。
三、Qt的特點
Qt的特點
- Qt 是一個跨平台的C++應用程序框架,支持Windows、Linux、Mac OS X、Android、iOS、Windows Phone、嵌入式系統等。也就是說,Qt 可以同時支持桌面應用程序開發、嵌入式開發和移動開發,覆蓋了現有的所有主流平台。你只需要編寫一次代碼,發布到不同平台前重新編譯即可。
- Qt 不僅僅是一個GUI庫,它除了可以創建漂亮的界面,還有很多其他組件,例如,你不再需要研究STL,不再需要C++的頭文件,不再需要去找解析XML、連接數據庫、Socket 的各種第三方庫,這些 Qt 都已經內置了。
- Qt的良好封裝機制使得Qt的模塊化程度非常高,可重用性較好,對於用戶開發來說是非常方便的。Qt提供了一種稱為signals/slots 的安全類型來替代callback,這使得各個元件之間的協同工作變得十分簡單。
- Qt 是應用程序開發的一站式解決方案!
- Qt 雖然龐大,封裝較深,但它的速度並不慢,雖不及MFC,但比Java、C#要快。Qt 程序最終會編譯成本地代碼,而不是依托虛擬機。
- Qt包括多達250個以上的C++類,還提供基於模板的collections、serialization、file、I/O device、directory management和date/time類。甚至還包括正則表達式的處理功能。
Qt可以做什么
-
使用 Qt 開發的程序非常多。1997年,Qt 被用來開發 Linux 桌面環境 KDE,大獲成功,使 Qt 成為 Linux 環境下開發 C++ GUI 程序的事實標准。Linux 也是嵌入式的主力軍,廣泛應用於消費類電子、工業控制、軍工電子、電信/網絡/通訊、航空航天、汽車電子、醫療設備、儀器儀表等相關行業,這些地方都有 Qt 的影子。總的來說,Qt主要用於桌面程序的開發和嵌入式開發。
-
在 Windows 下,GUI 解決方案比較多,基於C++的有 Qt、MFC、WTL、wxWidgets、DirectUI、Htmlayout,基於C#的有 WinForm、WPF,基於Java的有AWT、Swing,基於Pascal的有Delphi,還有國內初露頭角的 aardio;如果你有Web開發經驗,也可以基於Webkit或Chromium將網頁轉換為桌面程序。
Qt學習的注意事項:
- Qt是一個標准的出c++應用程序框架,那么首先要對c++的概念以及語法有所了解,並學習相關知識。Qt可以很好的封裝c++,c程序,做出精美的界面和軟件。
- QT分為4.0版本和5.0版本他們之間的差別很大,不通用!
- Qt可以跨平台運行,一次編寫可以跨平台編譯,開發跨平台應用時也要多學習一些系統知識。
- Qt作為諾基亞開發的一款軟件比微軟的mfc開發軟件簡單易學,尤其是其獨創的信號和槽機制,比微軟的消息機制更簡單方便,容易被理解。因此,一定要對信號和槽機制很好的理解並掌握。這是Qt開發的核心機制。