1. Qt這個C++的圖形庫由Trolltech在1994年左右開發。它能夠運行在Windows,Mac OS X, Unix,還有像Sharp Zaurus這類嵌入式系統中。Qt是徹底面向對象的。java
2. Qt的架構明顯是通過精心設計的面向對象的。Qt所以在命名,繼承,類的組織等方面保持了優秀的一致性。你只須要提供惟一一個方法的參數,僅此一個。在不一樣的類中調用方式也是有很強的連貫性。返回值也頗有邏輯性。全部一切達到了簡單和強大的和諧統一。一旦你使用了其中一個類,其餘的類也就舉一反三,由於他們是一致的。編程
3. Qt不強制使用任何設計模式。若是你認爲恰當,使用Document/view沒有任何問題。不使用也沒有任何問題。設計模式
4. MFC是事件驅動的架構。要執行任何操做,都必須是對特定的消息做出響應。Windows對應用程序發送的信息數以千計,遺憾的是,要分清楚這些分繁蕪雜的消息是很困難的,而且關於這方面的文檔並不能很好的解決這些問題。
Qt的消息機制是創建在SIGNAL()發送和SLOT()接受的基礎上的。這個機制是對象間創建聯繫的核心機制。利用SIGNAL()能夠傳遞任何的參數。他的功能很是的強大。能夠直接大傳遞信號給SLOT(),所以能夠清楚的理解要發生的事情。一個類所發送的信號的數量一般很是的小(4或者5),而且文檔也很是的齊全。這讓你感受到一切盡在掌握之中。SIGNAL/SLOT機制相似於Java中listener機制,不過這種機制更加輕量級,功能更齊全。安全
5. Qt擁有很是簡單而又不失強大的layout機制,佈局靈活多變
Qt還提供了一個圖形用戶工具,Qt Designer,能夠用來幫助創建用戶界面。能夠修改所使用的任何控件的屬性。不用將他們放在嚴格的位置,能夠經過layout完美的組織他們。這個工具所產生的代碼咱們是能夠實際上閱讀而且能夠理解的。生成的代碼單獨放在一個文件裏,在編程的同時,你能夠爲所欲爲的屢次從新生成用戶界面。
Qt Designer可讓你完成許多在MFC中不可能完成的任務,好比用預先填好的生成listview,在每一個tab上用不一樣的view來使用tab 控制。服務器
6. 使用MFC,一部分開發過程要依靠「resources」,在不少的案例中開發者必須使用他們。這樣會致使以下的後果:出了Visual Studio,你很難使用其餘的工具來完成開發。
資源編輯器僅有有限的功能,好比:經過Dialog編輯器不可能改變全部的屬性,一些屬性能夠改變,另外一些屬性則不可能改變。(譯者注:下面還有兩條陳述MFC缺點的實例,但我感受這些已經夠說明問題了,暫時刪節不譯)
然而Qt並無資源的概念,這就解決了以上所提到的問題。Qt提供了一個腳本使得能將編入你的代碼。對於界面設計,Qt Designer則建立了可讀的代碼。架構
7. Qt的文檔完備且詳細的覆蓋了Qt的方方面面,居然僅有18M。每個類和方法都被詳盡描述,鉅細靡遺,舉例充實。經過Trolltech公司提供的連接或者是Qt Assistant工具,能夠方便的從一個類或者方法跳轉到其餘的類。文檔還包含了一個初學者教程和一些典型應用的例子編輯器
8. 在發佈基於MFC的軟件時,必須依靠存在於客戶電腦上的MFC。可是這是不安全的,一樣是MFC42.dll,能夠基於相同的庫獲得3個不一樣的版本。一般,須要檢查是否擁有正確的MFC42.dll版本,若是不是,就升級它。可是升級MFC42.dll會改變不少軟件的行爲。
Qt則沒有這個風險,由於Qt壓根就沒有「升級整個系統」這個概念。工具
9. Qt 徹底支持CSS2,這使得Qt應用程序,不管是美化仍是換膚,實現起來都至關簡單佈局
10. Qt自帶翻譯器,能夠隨意切換軟件語言網站
11. 海康的iVMS-4200客戶端,流媒體服務器,存儲服務器都是用Qt實現。
http://blog.csdn.net/superzhaifd/article/details/18224923