GTK+与QT的对比 分类: H_HISTORY 2013-02-05 09:27 3101人阅读 评论(0) 收藏
2013-02-05 09:27
369 查看
想看看图形界面系统的优缺点,转载了网友整理的:
GTK+的优点与QT的优点整理
在嵌入式 Linux 下有很多图形界面系统 GUI,包括 Qt/Embedded,FLTK,Microwindows 和 GTK+ 等。作为一个开发者,到底使用什么样的 GUI 系统呢?对一个系统,将它改造为符合你的需求,你要做多少修改呢?修改后的系统的尺寸一般会有多大呢?这些都是开发人员会遇到的问题。我们在这里讨论的就 是要对这些内容做一个具体细致的分析,通过我们的讨论,大家会对基于 GTK+ 和 X 的 GUI 在嵌入式Linux
下的应用有一个确切的了解。
正文
在嵌入式系统应用日益发展的今天,越来越多的应用都需要使用到 GUI 来进行开发,以此来获得更好的交互性。
嵌入式 Linux 下 GUI 的选择,对大多数开发人员来说是一个需要权衡对比的过程。选择 GTK+ 运行在 X 系统上,然后 X 系统运行在嵌入系统的 framebuffer 上,这会是一个很好的选择。
GTK+ 与 X 的优点
当然,GTK+ 与 X 一般都是被大家考虑为体积较大的桌面系统的好搭配,但实际上对于嵌入系统来说,它也有着诸多的优点:
1、 X-window 系统与 GTK+ 都非常稳定可靠,X-window 系统是经历了长期的开发及应用实践的,GTK+ 也是一个比较成熟的开放源代码项目;
2、 X-window 系统是一个灵活的 client/server 的模型结构,一个应用客户端的崩溃不会影响到图形系统的其他部分,这是一个很重要的特性,它有利于支持第三方应用的扩展开发,而不影响到主体部分;
3、 GTK+有两个重要的库:GDK和GLIB。GDK抽象了底层的窗口管理,要移植 GTK+ 到另一个不同的窗口系统的话,我们只需要移植 GDK 就可以了。GLIB 是一个工具集合,它包括了数据类型,各种宏定义,类型转化,字符串处理,任何应用程序都可以链接这个 GLIB 库,使用其中的各种数据类型、方法,来避免重复代码,或者说避免开发人员重新发明轮子,这样有利于减少整个系统的尺寸;
4、 对 GTK+/X 的裁剪是很容易的,它们有着很好的可配置的选项,有着清晰的代码结构,可以保证安全正确地去掉大段的不需要的代码;
5、 GTK+ 有着大量的应用,GTK+ 已经被用在了很多重要的应用系统中;
6、 GTK+ 的授权是 LGPL 方式的,X 是 non-copyleft free license 的,第三方开发的系统都能与它们进行链接;
7、 GTK+/X 二者都是基于 C 代码的,而不是C++;
8、 GTK+ 使用 C 来实现了面向对象的架构;
其他 GUI 系统
其他可以选择的图形系统包括:Qt/Embedded,FLTK 和 Microwindows。
1、 Qt/E 是其中较高级的,它是一个完整的,基于 framebuffer 的 GUI 系统,由 Trolltech 公司开发;
2、 Qt/E 有着高效的图形渲染效果,还包括 TrueType 字体系统,及 alpha blending 半透明处理;
3、 但 Qt/E 不是使用 LGPL 授权方式,而是使用两种授权方式:开发使用 GPL,而商用需要授权与版税;
4、 Qt/E 是用 C++ 编写的;
5、 Qt/E 非常大,一个 iPAQ QPE 就包括了 3.3MB 的 Qt/E 库和一个 718KB 的 QPE 库(和 Xlib 类似的一种库);
6、 Qt/E 不够稳定,QPE demo 不错,但出现过崩溃;
7、 FLTK (the Fast Light Toolkit) 是一个小型的 GUI 图形系统,它也是用 C++ 写的,特性太少,应用范围较少,不够成熟;
8、 Microwindows 和 X-Window 相比也是一个不错的选择,它占用大约 100KB-600KB 大小的内存,和文件存储空间,虽然已经有了一个其上的 GTK+ 移植,但还是不够成熟;
X-window:比你想象的要小很多
对于X-window系统,广大的网络开发者已经做了大量的工作来减小其的尺寸,最知名的有TinyX。可以通过对不需要的代码的裁剪及去除XLIB中静态数据来减少总体的尺寸,如:color管理系统,弧形,粗线条等。
在 大多数开发人员的印象里,X 系统很庞大,但实际上,你听到的,是那些对 X 不够了解的人的一种误解。在经过裁剪后的情况下,GTK+/X 要比 GTK+/FB 与 Qt/E 还要来得有效,且 XLIB 对一般的应用程序有着更好的支持作用,应用程序的开发会变得更高效。
--------------------------------------------
QT优点:
1、跨X11, Win32, Mac三个平台并且是二进制原生代码的(比java和.net程序快得多)(源代码级移植)
2、有个十分好使用的工程管理工具qmake((相比较wxWidget, Gtk+等而言,非常地方便开发)
3、在常用的X11, Win32平台既有开源版,又有商业版,供不同的用途使用。又有公司的商业支持,开发正规。有KDE(包括KOffice, KDevelop等)这样典型的的成功运用的项目,使人放心。随着Qt 4.0开源版的发布,KDE向Windows的移植已经确定,由此,KDevelop,
KOffice等一大批KDE下面的软件也就能移植过去, 有了KDevelop,KWrite等,Windows下Qt的应用将很快多起来,也更加方便开发,我在期待着KDevelop移植到Windows,以解决Windows下的用QT开发的IDE问题。
4、有方便的嵌入式图形界面开发方面的解决方案
就目前而言,确实比Gtk+, wxWidget, mono等方便好使
GTK+的优点与QT的优点整理
在嵌入式 Linux 下有很多图形界面系统 GUI,包括 Qt/Embedded,FLTK,Microwindows 和 GTK+ 等。作为一个开发者,到底使用什么样的 GUI 系统呢?对一个系统,将它改造为符合你的需求,你要做多少修改呢?修改后的系统的尺寸一般会有多大呢?这些都是开发人员会遇到的问题。我们在这里讨论的就 是要对这些内容做一个具体细致的分析,通过我们的讨论,大家会对基于 GTK+ 和 X 的 GUI 在嵌入式Linux
下的应用有一个确切的了解。
正文
在嵌入式系统应用日益发展的今天,越来越多的应用都需要使用到 GUI 来进行开发,以此来获得更好的交互性。
嵌入式 Linux 下 GUI 的选择,对大多数开发人员来说是一个需要权衡对比的过程。选择 GTK+ 运行在 X 系统上,然后 X 系统运行在嵌入系统的 framebuffer 上,这会是一个很好的选择。
GTK+ 与 X 的优点
当然,GTK+ 与 X 一般都是被大家考虑为体积较大的桌面系统的好搭配,但实际上对于嵌入系统来说,它也有着诸多的优点:
1、 X-window 系统与 GTK+ 都非常稳定可靠,X-window 系统是经历了长期的开发及应用实践的,GTK+ 也是一个比较成熟的开放源代码项目;
2、 X-window 系统是一个灵活的 client/server 的模型结构,一个应用客户端的崩溃不会影响到图形系统的其他部分,这是一个很重要的特性,它有利于支持第三方应用的扩展开发,而不影响到主体部分;
3、 GTK+有两个重要的库:GDK和GLIB。GDK抽象了底层的窗口管理,要移植 GTK+ 到另一个不同的窗口系统的话,我们只需要移植 GDK 就可以了。GLIB 是一个工具集合,它包括了数据类型,各种宏定义,类型转化,字符串处理,任何应用程序都可以链接这个 GLIB 库,使用其中的各种数据类型、方法,来避免重复代码,或者说避免开发人员重新发明轮子,这样有利于减少整个系统的尺寸;
4、 对 GTK+/X 的裁剪是很容易的,它们有着很好的可配置的选项,有着清晰的代码结构,可以保证安全正确地去掉大段的不需要的代码;
5、 GTK+ 有着大量的应用,GTK+ 已经被用在了很多重要的应用系统中;
6、 GTK+ 的授权是 LGPL 方式的,X 是 non-copyleft free license 的,第三方开发的系统都能与它们进行链接;
7、 GTK+/X 二者都是基于 C 代码的,而不是C++;
8、 GTK+ 使用 C 来实现了面向对象的架构;
其他 GUI 系统
其他可以选择的图形系统包括:Qt/Embedded,FLTK 和 Microwindows。
1、 Qt/E 是其中较高级的,它是一个完整的,基于 framebuffer 的 GUI 系统,由 Trolltech 公司开发;
2、 Qt/E 有着高效的图形渲染效果,还包括 TrueType 字体系统,及 alpha blending 半透明处理;
3、 但 Qt/E 不是使用 LGPL 授权方式,而是使用两种授权方式:开发使用 GPL,而商用需要授权与版税;
4、 Qt/E 是用 C++ 编写的;
5、 Qt/E 非常大,一个 iPAQ QPE 就包括了 3.3MB 的 Qt/E 库和一个 718KB 的 QPE 库(和 Xlib 类似的一种库);
6、 Qt/E 不够稳定,QPE demo 不错,但出现过崩溃;
7、 FLTK (the Fast Light Toolkit) 是一个小型的 GUI 图形系统,它也是用 C++ 写的,特性太少,应用范围较少,不够成熟;
8、 Microwindows 和 X-Window 相比也是一个不错的选择,它占用大约 100KB-600KB 大小的内存,和文件存储空间,虽然已经有了一个其上的 GTK+ 移植,但还是不够成熟;
X-window:比你想象的要小很多
对于X-window系统,广大的网络开发者已经做了大量的工作来减小其的尺寸,最知名的有TinyX。可以通过对不需要的代码的裁剪及去除XLIB中静态数据来减少总体的尺寸,如:color管理系统,弧形,粗线条等。
在 大多数开发人员的印象里,X 系统很庞大,但实际上,你听到的,是那些对 X 不够了解的人的一种误解。在经过裁剪后的情况下,GTK+/X 要比 GTK+/FB 与 Qt/E 还要来得有效,且 XLIB 对一般的应用程序有着更好的支持作用,应用程序的开发会变得更高效。
--------------------------------------------
QT优点:
1、跨X11, Win32, Mac三个平台并且是二进制原生代码的(比java和.net程序快得多)(源代码级移植)
2、有个十分好使用的工程管理工具qmake((相比较wxWidget, Gtk+等而言,非常地方便开发)
3、在常用的X11, Win32平台既有开源版,又有商业版,供不同的用途使用。又有公司的商业支持,开发正规。有KDE(包括KOffice, KDevelop等)这样典型的的成功运用的项目,使人放心。随着Qt 4.0开源版的发布,KDE向Windows的移植已经确定,由此,KDevelop,
KOffice等一大批KDE下面的软件也就能移植过去, 有了KDevelop,KWrite等,Windows下Qt的应用将很快多起来,也更加方便开发,我在期待着KDevelop移植到Windows,以解决Windows下的用QT开发的IDE问题。
4、有方便的嵌入式图形界面开发方面的解决方案
就目前而言,确实比Gtk+, wxWidget, mono等方便好使
相关文章推荐
- 简单计算器的面向过程实现和面向对象实现对比 分类: C# 2012-06-21 10:45 2783人阅读 评论(0) 收藏
- JAVA 关于Icon,Image,ImageIcon的简单的对比参考 分类: Java Game 2014-08-14 17:08 210人阅读 评论(0) 收藏
- 常见排序算法时间对比 分类: C/C++ 数据结构与算法 2015-06-16 10:26 167人阅读 评论(0) 收藏
- 枚举作为整数 分类: H_HISTORY 2013-02-08 11:22 576人阅读 评论(0) 收藏
- OpenCV与QT联合编译 分类: Eye_Detection ZedBoard OpenCV shell ubuntu 2014-11-08 18:54 143人阅读 评论(0) 收藏
- Qt学习笔记(一) 分类: QT学习实践 2015-05-03 20:51 43人阅读 评论(0) 收藏
- MS SQL与Oracle常用函数对比 分类: 数据库 2009-11-05 23:41 259人阅读 评论(0) 收藏
- irms模拟数据生成及数据分析 分类: H_HISTORY 2015-03-06 14:17 212人阅读 评论(0) 收藏
- 使用C语言读取properties文件V1.0 分类: H_HISTORY 2013-02-26 12:37 946人阅读 评论(0) 收藏
- Velocity浅析及与Jsp、Freemarker对比 分类: B1_JAVA 2014-07-21 09:14 637人阅读 评论(0) 收藏
- PC机安装Qt以及QT交叉编译环境 分类: OpenCV ZedBoard shell ubuntu Eye_Detection 2014-11-08 18:57 246人阅读 评论(0) 收藏
- 用Qt还是MFC 分类: QT学习实践 2015-05-07 23:17 30人阅读 评论(0) 收藏
- 文件复制函数的效率比较 分类: H_HISTORY 2013-02-17 21:20 845人阅读 评论(1) 收藏
- Model/View框架总体架构 分类: QT学习实践 2015-05-11 22:05 34人阅读 评论(0) 收藏
- return 与 exit()的区别--return退出本函数,exit()退出整个程序 分类: H_HISTORY 2013-02-03 19:44 367人阅读 评论(0) 收藏
- C语言内存分配时间 分类: H_HISTORY 2013-02-11 10:51 1432人阅读 评论(3) 收藏
- C语言声明数组变量时,在什么情况下,可不指定数组大小 分类: H_HISTORY 2013-02-11 11:03 694人阅读 评论(0) 收藏
- QSqlQuery类参考 分类: QT学习实践 2015-05-11 08:45 31人阅读 评论(0) 收藏
- sgu222 分类: sgu 2015-06-12 09:27 24人阅读 评论(0) 收藏
- c语言中<stdbool.h>的使用 分类: H_HISTORY 2013-02-03 21:46 1416人阅读 评论(0) 收藏