http://c.biancheng.net/view/3876.html
世界上的 GUI 庫多如牛毛,有的跨平台,有的專屬於某個操作系統;有的只有 UI 功能,有的還融合了網絡通信、多媒體處理、數據庫訪問等底層功能。
Windows 下的 GUI 庫
Windows 下的 GUI 解決方案比較多:
- 基於 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 桌面程序有以下優點:
- 簡單易學: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 庫對比圖
