C++下Windows Forms + MFC + WTL + wxWidgets + Qt + GTK+ 非官方综合比较

原文:http://www.cppblog.com/lingjingqiu/archive/2009/01/06/71363.html

界面库名称

接口设计

界面编辑器

高级布局功能

平面绘制

平台兼容性

语言支持

IDE兼容性

视图-模型分离机制

运行时

其它

Windows Forms

接口优秀。C++下使用CLI扩展,其它语言为原生支持。

界面编辑器完整,包括布局、属性、消息关联的完整设置。不可预览。

Table Layout,Splitter Layout,Flow Layout等,Anchor和Dock机制。多分辨率界面下表现良好。

GDI+,面向对象的2D绘制接口,使用简便。

需要.Net平台支持。WIndows或Linux(Mono,非官方支持),支持Windows CE

C++/CLI, 支持.net的语言。

仅VS。

布局和视图方案建立在代码中。部分组件支持Model-View架构。

需要部署对应的.net

商业协议

MFC

基于宏和虚函数,使用特殊格式注释,使用自定义的RTTI系统。类接口设计优良。通过回调函数和虚继承重载调用客户代码。

基于资源编辑器,仅能对空间基本布局和少量属性进行调整。不可预览。

缺乏高级布局功能,多分辨率需要是手工或程序中调整。

GDI及GDI封装,可选GDI+

Windows,Windows CE

C++ Only,
支持COM时可以实现Binary级别复用。

仅Visual Studio

使用资源保存控件的基本控件布局,提供Doc-View机制和控件数据交换支持视图分离。

需要部署MFC运行时库。

商业协议

WTL

基于模板和虚函数。类接口类似于MFC。需要使用多重继承。通过模板特化和回调函数与客户代码交互。

同MFC

同MFC

同MFC

同MFC

同MFC,对COM的支持比MFC完善很多。

Visual Studio,Windows下支持标准的C++编译器。

使用资源文件保存空间布局。

自由协议

wxWidget

宏,自定义RTTI。使用回调函数与用户代码交互。

无官方界面编辑器。可使用第三方界面编辑器。部分编辑器具有完整的所见即所得功能,且具有预览能力。

使用Sizer实现多分辨率的布局。功能偏弱。

wxDC等。

Windows,Linux,Unix,MacOS等

C++, .NET, Python,
Lua,
Ruby等

良好的编译器兼容性,缺乏IDE继承。

可以将界面属性生成到代码中,也可以使用XML格式保存。

wx的动态链接库或静态链接。

自由协议

Qt

使用宏和自定义的RTTI。使用Singal-Slot机制实现用户代码交互。可通过继承实现扩展。

Qt Designer,具备完整的所见即所得编辑功能。可预览界面。

具备完整的布局功能。多分辨率/多平台下表现良好。

QCanvas等。

Windows,Linux,Unix,MacOS等。

C++,Python等

可集成到Eclipse和VS

使用资源文件保存界面信息。部分组件具备Model-View-Delegate架构

qt的动态链接库。

开源协议+商业协议

GTK+

使用signal-slot机制完成用户代码交互。

GLADE,具备所见即所得的界面编辑功能

Layout Containers,具备较完整的布局能力。

GTK Graphics Context

Windows,Linux,Unix,MacOS等。

C,C++,Python,.NET等。

(暂时未知)

使用代码完成界面设置。部分组件具备Model-View架构。

GTK Runtime

开源协议


你可能感兴趣的:(C++下Windows Forms + MFC + WTL + wxWidgets + Qt + GTK+ 非官方综合比较)