http://c.biancheng.net/view/3876.htmlhtml
世界上的 GUI 庫多如牛毛,有的跨平臺,有的專屬於某個操做系統;有的只有 UI 功能,有的還融合了網絡通訊、多媒體處理、數據庫訪問等底層功能。java
Windows 下的 GUI 庫
Windows 下的 GUI 解決方案比較多:linux
- 基於 C++ 的有 Qt、MFC、WTL、wxWidgets、DirectUI、Htmlayout;
- 基於 C# 的有 WinForm、WPF;
- 基於 Java 的有 AWT、Swing;
- 基於 Pascal 的 有Delphi;
- 基於Go語言的有 walk 和 electron;
- 還有國內初露頭角的 aardio;
- Visual Basic 曾經很流行,如今逐漸失去了色彩;
- 若是你有 Web 開發經驗,也能夠基於 Webkit 或 Chromium 將網頁轉換爲桌面程序。
沒有哪種方案可以獨霸 Windows,使用比較多的編程語言是 C++、C#、Java。
用 Qt 來開發 Windows 桌面程序有如下優勢:golang
- 簡單易學:Qt 封裝的很好,幾行代碼就能夠開發出一個簡單的客戶端,不須要了解 Windows API。
- 資料豐富:資料豐富可以成倍下降學習成本,不然你只能去看源碼,關於 DirectUI、Htmlayout、aardio 的資料就不多。
- 漂亮的界面:Qt 很容易作出漂亮的界面和炫酷的動畫,而 MFC、WTL、wxWidgets 比較麻煩。
- 獨立安裝:Qt 程序最終會編譯爲本地代碼,不須要其餘庫的支撐,而 Java 要安裝虛擬機,C# 要安裝 .NET Framework。
- 跨平臺:若是你的程序須要運行在多個平臺下,同時又但願下降開發成本,Qt 幾乎是必備的。
Qt 和 MFC
讀者常常將 MFC 和 Qt 進行對比,MFC 只能應用在 Windows 平臺,而 Qt 是跨平臺的,一次編寫,處處運行。
另外,Qt 已經封裝了底層細節,學習 Qt 將會很是簡單;而 MFC 只是給 Windows API 加了一層包裝,不瞭解 Windows API 也學很差 MFC,你們廣泛反映 MFC 難學。
咱們不能簡單地說 Qt 好仍是 MFC 好,二者都有用武之地;可是初學者學習 Qt 會比較簡單,不用應付那些煩人的 Windows API,很快就能開發出帶有漂亮界面的應用程序。數據庫
Linux 下的 GUI 庫
Linux 下經常使用的 GUI 庫有基於 C++ 的 Qt、GTK+、wxWidgets,以及基於 Java 的 AWT 和 Swing。其中最著名的就是 Qt 和 GTK+:KDE 桌面系統已經將 Qt 做爲默認的 GUI 庫,Gnome 桌面系統也將 GTK+ 做爲默認的 GUI 庫。編程
有興趣的讀者請猛擊《 Linux桌面系統》瞭解更多關於 KDE 和 Gnome 的內容。
相比 GTK+,Qt 的功能更增強大,更新也很快,比較受人們追捧。網絡
圖1:Linux 下各類 GUI 庫對比圖