C/C++ 两大GUI库Qt & GTK比较
2011-05-20 06:25
387 查看
一: Qt:
Qt是Trolltech公司的一个多平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术 级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且允许真正地组件编程。自从1996年早些时候,Qt进入商业领域,它已经成为全世 界范围内数千种成功的应用程序的基础。Qt也是流行的Linux桌面环境KDE 的基础,同时它还支持Windows、Macintosh、Unix/X11等多种平台。
Qt毕竟是商业化的东西,功能最完整,什么都好,包括类似java代码风格,良好的框架设计,但有几点值的一提:
1.它没有使用STL,而是自己实现了一套替代方案QTL;
2.事件模型使用自创的signal/slot机制,所以需要moc.exe来预处理头文件;
3.对皮肤的支持不是很好,需要自己写Style类来定义各种控件的Paint;
参考网站:http://www.trolltech.com
二:GTK+ & GTKmm
gtk+用C语言的面向对象的设计方法,框架设计良好,它可能会比Qt性能好。LGPL协议,可以作商业用途,支持皮肤 (theme/GtkStyle),支持XML定义界面,有设计器支持(glade),支持国际化(gettext),但没有Qt方便,编译的库大小3M 左右(Debug版本算上所有的lib)比Qt小;有类似Qt的signal机制,但不需要预编译处理。对opengl和图形图像支持良好。
gtk+基于三个库:glib,pango和atk。glib是底层库,封装了c的数据结构处理,可移植性,thread,动态载入以及一个对象系统。pango是一个布局和文本渲染库,处理
字体和国际化。atk是一个应用程序组件接口库,里面有类似Qt的action之类的。另外cario是一个矢量图的处理库。
因为是C,但代码中避免不了宏和下划线,不是那么讨人喜欢,估计C程序员比较习惯。
但有其他语言的绑定,c++的是gtkmm,python的是PyGtk,ada的是AdaGtk。其中gtkmm的代码风格比较好,没有了下划线和诸多宏。
gtk+的最著名的成功案例是gimp图像处理工具和gnome桌面。
Qt是Trolltech公司的一个多平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术 级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且允许真正地组件编程。自从1996年早些时候,Qt进入商业领域,它已经成为全世 界范围内数千种成功的应用程序的基础。Qt也是流行的Linux桌面环境KDE 的基础,同时它还支持Windows、Macintosh、Unix/X11等多种平台。
Qt毕竟是商业化的东西,功能最完整,什么都好,包括类似java代码风格,良好的框架设计,但有几点值的一提:
1.它没有使用STL,而是自己实现了一套替代方案QTL;
2.事件模型使用自创的signal/slot机制,所以需要moc.exe来预处理头文件;
3.对皮肤的支持不是很好,需要自己写Style类来定义各种控件的Paint;
参考网站:http://www.trolltech.com
二:GTK+ & GTKmm
gtk+用C语言的面向对象的设计方法,框架设计良好,它可能会比Qt性能好。LGPL协议,可以作商业用途,支持皮肤 (theme/GtkStyle),支持XML定义界面,有设计器支持(glade),支持国际化(gettext),但没有Qt方便,编译的库大小3M 左右(Debug版本算上所有的lib)比Qt小;有类似Qt的signal机制,但不需要预编译处理。对opengl和图形图像支持良好。
gtk+基于三个库:glib,pango和atk。glib是底层库,封装了c的数据结构处理,可移植性,thread,动态载入以及一个对象系统。pango是一个布局和文本渲染库,处理
字体和国际化。atk是一个应用程序组件接口库,里面有类似Qt的action之类的。另外cario是一个矢量图的处理库。
因为是C,但代码中避免不了宏和下划线,不是那么讨人喜欢,估计C程序员比较习惯。
但有其他语言的绑定,c++的是gtkmm,python的是PyGtk,ada的是AdaGtk。其中gtkmm的代码风格比较好,没有了下划线和诸多宏。
gtk+的最著名的成功案例是gimp图像处理工具和gnome桌面。
相关文章推荐
- C/C++ 两大GUI库Qt & GTK比较
- C/C++ 两大GUI库Qt & GTK比较
- C++下Windows Forms + MFC + WTL + wxWidgets + Qt + GTK+ 非官方综合比较
- Qt和Standard C++智能指针比较
- C++下Windows Forms + MFC + WTL + wxWidgets + Qt + GTK+ 非官方综合比较
- C++下Windows Forms + MFC + WTL + wxWidgets + Qt + GTK+ 非官方综合比较
- C++下Windows Forms + MFC + WTL + wxWidgets + Qt + GTK+ 非官方综合比较
- C++下Windows Forms + MFC + WTL + wxWidgets + Qt + GTK+ 非官方综合比较
- C++下Windows Forms + MFC + WTL + wxWidgets + Qt + GTK+ 非官方综合比较
- [C++ GUI Programming with Qt 4/5 代码] && [从Qt4过渡至Qt5(The Transition from Qt 4.x to Qt 5)]
- C/C++开发环境(GTK/GNOME/Qt/KDE)
- 最近正在做《高级Qt编程--使用C++和Qt创建卓越软件》一书的审校,比较忙。所以写博客较少。顺便透露一下进度。呵呵
- C++ Tutorial: Sockets - Server & Client using QT - 2015
- 自由软件圣战 -- "KDE/QT .VS. Gnome/Gtk"
- C++&Qt 1
- Qt、ACE、Boost等C++著名程序库的比较和学习经验
- Qt creator 添加C++源码程序报错
- Qt、ACE、Boost等C++著名程序库的比较和学习经验
- Qt、ACE、Boost等C++著名程序库的比较和学习经验
- 图形界面库Windows Forms、 MFC、WTL、 WxWidgets、Qt、GTK 综合比较