界面庫名稱
|
接口設(shè)計(jì)
|
界面編輯器
|
高級(jí)布局功能
|
平面繪制
|
平臺(tái)兼容性
|
語言支持
|
IDE兼容性
|
視圖-模型分離機(jī)制
|
運(yùn)行時(shí)
|
其它
|
Windows Forms
|
接口優(yōu)秀。C++下使用CLI擴(kuò)展,其它語言為原生支持。
|
界面編輯器完整,包括布局、屬性、消息關(guān)聯(lián)的完整設(shè)置。不可預(yù)覽。
|
Table Layout,Splitter Layout,F(xiàn)low Layout等,Anchor和Dock機(jī)制。多分辨率界面下表現(xiàn)良好。
|
GDI+,面向?qū)ο蟮?D繪制接口,使用簡便。
|
需要.Net平臺(tái)支持。WIndows或Linux(Mono,非官方支持),支持Windows CE
|
C++/CLI, 支持.net的語言。
|
僅VS。
|
布局和視圖方案建立在代碼中。部分組件支持Model-View架構(gòu)。
|
需要部署對(duì)應(yīng)的.net
|
商業(yè)協(xié)議
|
MFC
|
基于宏和虛函數(shù),使用特殊格式注釋,使用自定義的RTTI系統(tǒng)。類接口設(shè)計(jì)優(yōu)良。通過回調(diào)函數(shù)和虛繼承重載調(diào)用客戶代碼。
|
基于資源編輯器,僅能對(duì)空間基本布局和少量屬性進(jìn)行調(diào)整。不可預(yù)覽。
|
缺乏高級(jí)布局功能,多分辨率需要是手工或程序中調(diào)整。
|
GDI及GDI封裝,可選GDI+
|
Windows,Windows CE
|
C++ Only, 支持COM時(shí)可以實(shí)現(xiàn)Binary級(jí)別復(fù)用。
|
僅Visual Studio
|
使用資源保存控件的基本控件布局,提供Doc-View機(jī)制和控件數(shù)據(jù)交換支持視圖分離。
|
需要部署MFC運(yùn)行時(shí)庫。
|
商業(yè)協(xié)議
|
WTL
|
基于模板和虛函數(shù)。類接口類似于MFC。需要使用多重繼承。通過模板特化和回調(diào)函數(shù)與客戶代碼交互。
|
同MFC
|
同MFC
|
同MFC
|
同MFC
|
同MFC,對(duì)COM的支持比MFC完善很多。
|
Visual Studio,Windows下支持標(biāo)準(zhǔn)的C++編譯器。
|
使用資源文件保存空間布局。
|
無
|
自由協(xié)議
|
wxWidget
|
宏,自定義RTTI。使用回調(diào)函數(shù)與用戶代碼交互。
|
無官方界面編輯器。可使用第三方界面編輯器。部分編輯器具有完整的所見即所得功能,且具有預(yù)覽能力。
|
使用Sizer實(shí)現(xiàn)多分辨率的布局。功能偏弱。
|
wxDC等。
|
Windows,Linux,Unix,MacOS等
|
C++, .NET, Python, Lua, Ruby等
|
良好的編譯器兼容性,缺乏IDE繼承。
|
可以將界面屬性生成到代碼中,也可以使用XML格式保存。
|
wx的動(dòng)態(tài)鏈接庫或靜態(tài)鏈接。
|
自由協(xié)議
|
Qt
|
使用宏和自定義的RTTI。使用Singal-Slot機(jī)制實(shí)現(xiàn)用戶代碼交互。可通過繼承實(shí)現(xiàn)擴(kuò)展。
|
Qt Designer,具備完整的所見即所得編輯功能。可預(yù)覽界面。
|
具備完整的布局功能。多分辨率/多平臺(tái)下表現(xiàn)良好。
|
QCanvas等。
|
Windows,Linux,Unix,MacOS等。
|
C++,Python等
|
可集成到Eclipse和VS
|
使用資源文件保存界面信息。部分組件具備Model-View-Delegate架構(gòu)
|
qt的動(dòng)態(tài)鏈接庫。
|
開源協(xié)議+商業(yè)協(xié)議
|
GTK+
|
使用signal-slot機(jī)制完成用戶代碼交互。
|
GLADE,具備所見即所得的界面編輯功能
|
Layout Containers,具備較完整的布局能力。
|
GTK Graphics Context
|
Windows,Linux,Unix,MacOS等。 |
C,C++,Python,.NET等。
|
(暫時(shí)未知)
|
使用代碼完成界面設(shè)置。部分組件具備Model-View架構(gòu)。
|
GTK Runtime
|
開源協(xié)議
|