在眾多C++的庫中,GUI部分的庫算是比較繁榮,也比較引人注目的。在實際開發中,GUI庫的選擇也是非常重要的一件事情,下面我們綜述一下可選擇的GUI庫,各自的特點以及相關工具的支持。
3.1、MFC
大名鼎鼎的微軟基礎類庫(Microsoft Foundation
Class)。大凡學過VC++的人都應該知道這個庫。雖然從技術角度講,MFC是不大漂亮的,但是它構建于Windows API
之上,能夠使程序員的工作更容易,編程效率高,減少了大量在建立 Windows 程序時必須編寫的代碼,同時它還提供了所有一般 C++
編程的優點,例如繼承和封裝。MFC 編寫的程序在各個版本的Windows操作系統上是可移植的,例如,在Windows 3.1下編寫的代碼可以很容易地移植到
Windows NT 或 Windows 95 上。但是在最近發展以及官方支持上日漸勢微。
3.2、QT
參考網站:http://www.trolltech.com
Qt是Trolltech公司的一個多平臺的C++圖形用戶界面應用程序框架。它提供給應用程序開發者建立藝術級的圖形用戶界面所需的所用功
能。Qt是完全面向對象的很容易擴展,并且允許真正地組件編程。自從1996年早些時候,Qt進入商業領域,它已經成為全世界范圍內數千種成功的應用程序
的基礎。Qt也是流行的Linux桌面環境KDE
的基礎,同時它還支持Windows、Macintosh、Unix/X11等多種平臺。[wangxinus注:QT目前已經是Nokia旗下的產品,原官方網站已經失效,目前為http://qt.nokia.com.2009年初發布的Qt4.5版本開始使用LGPL協議,諾基亞希望以此來吸引更多的開發人員使用Qt庫]
3.3、WxWindows
參考網站:http://www.wxwindows.org
跨平臺的GUI庫。因為其類層次極像MFC,所以有文章介紹從MFC到WxWindows的代碼移植以實現跨平臺的功能。通過多年的開發也是一個日趨完善的GUI庫,支持同樣不弱于前面兩個庫。并且是完全開放源代碼的。新近的C++
Builder X的GUI設計器就是基于這個庫的。[wangxinus注:迫于微軟的施壓,已經由WxWindows更名為wxWidgets]
3.4、Fox
參考網站:http://www.fox-toolkit.org/
開放源代碼的GUI庫。作者從自己親身的開發經驗中得出了一個理想的GUI庫應該是什么樣子的感受出發,從而開始了對這個庫的開發。有興趣的可以嘗試一下。
3.5、WTL
基于ATL的一個庫。因為使用了大量ATL的輕量級手法,模板等技術,在代碼尺寸,以及速度優化方面做得非常到位。主要面向的使用群體是開發COM輕量級供網絡下載的可視化控件的開發者。
3.6、GTK
參考網站:http://gtkmm.sourceforge.net/
GTK是一個大名鼎鼎的C的開源GUI庫。在Linux世界中有Gnome這樣的殺手應用。而Qt就是這個庫的C++封裝版本。[wangxinus注:“Qt
就是這個庫的C++封裝版本”是錯誤的。Qt早于GTK,最初Qt由于協議的原因引起社區的不滿,另外開發了一個基于C語言的GTK庫,后面的擴展版本為
GTK+。GTK+的Gnome和Qt的KDE是目前linux桌面的兩大陣營,曾有水火不容之勢。目前雙方都以及開源社區的精神,已經和解。]
|