GTK+, Qt, wxWidgets 比较简评

跨平台 GUI 框架对比与实践:GTK+、wxWidgets 在实际项目中,应根据项目的具体需求、开发者的技术背景团队的开发习惯等因素综合考虑,选择合适的跨平台 GUI 框架。通过对这两个框架的对比与实践,希望能为广大开发者在 GUI 应用程序开发中提供有益的参考帮助,以便开发出更加优质、高效的跨平台图形界面程序。在软件开发中,图形用户界面(GUI)是与用户交互的重要部分。通过对它们的特点、架构、编程模型等方面的深入探讨,并结合实际项目案例展示如何利用这些框架开发在不同操作系统上运行的图形界面程序,为开发者在选择合适的 GUI 框架时提供参考依据。 阅读详情
 

这位来自台湾的朋友把GTK+, Qt, wxWidgets比较分析得相当到位。很明显的,MFC注定将淡出江湖了。下面就是几个跨平台库的横向比较。

之前因为把 MFC痛骂了一顿,有网友在询问其它 GUI toolkit的相关事项,所以小弟分享一下个人对三大知名图形界面库的简短评论,以下纯属个人主观意见,不是专业人士,所知有限,望前辈不吝指正或补充。

1.先讲 GTK+

GTK+ 主要用在 X Window 上,整个设计的架构和许多概念和 MFC 以及一般 Windows 上的程式开发大异其趣,入门门槛较高,而且最主要的特色是,它用不具有物件功能的纯"C" 語言,模擬物件导向。 所以写起来比较复杂艰涩,而且充满大量巨集,使用和除错都不是很容易,但优点则是可以用 C,不需 C++,如果和 Win32 SDK 比較,不会难学多少,缺点是不易上手使用,而且文件比较缺,架构又非常复杂,且提供的东西比起其它无所不包的 library,是简陋了一点,函数命名又臭又长。对于简单的程式,GTK+会显得太复杂,但是当你开始想扩充其它 library 也都沒提供的进阶功能,就会开始赞叹GTK+ 的架构严谨,还有超乎想象的高度弹性。同样的东西要用 MFC 來做反而会要人命,並且对多国語言的支援良好,內部也全面使用 UTF-8,相容性好,又是 unicode。能夠习惯的话,GTK+ 值得推荐,但沒有很建议学,毕竟不好学,要用到熟会需要比較久,而且那样很多 C++ 的功能会用不到。 GTK+ 有 C++ 版本叫做 GTK--,沒用过,但看文件觉得,并沒有比 gtk+ 简单到那里去。 因为 gtk+ 本來就是物件导向,所以即使換了 c++ 語言,写起來架构还是差不多的。 另外,gtk+ 有 Windows 版本,但缺点是,执行缓慢,不稳定,而且界面是使用 gtk+ 自己的,不是使用 Windows 內建的"Native" 原生图形界面,看起来会不太习惯。 Mac OS X 下可用 X11 來執行 gtk+,但那样出來的程式是长得像 UNIX 程式,而不是美美的 OS X Aqua 外观。

2.再说wxWidgets

wxWidgets 和 MFC 最接近,命名习惯或架构都高度相似,会MFC的话几乎不用重新学习。它有十余年历史,此外,它的物件封裝比 MFC 要好,提供的功能也多上太多,又跨平台。一般知名的 MFC 程式都会选择用 wxWidgets 改写,來快速移植原程式到其他平台。例如, eMule 用 wxWidgets 移植出 aMule, xMule, 还在开发中的 Filezilla 3...等。而它最主要的特色是,它是"跨平台"的 "Native" GUI toolkit,在各种平台上都可写出使用该平台內建 Native 原生图形界面的程式。 在 Windows 上就長得跟其他 Windows程式一样,在 Linux 下就使用 gtk+ 的图形界面,在 Mac OS X 下就可以使用华丽的Aqua外观风格,这点是非常強悍。 不像 gtk+ 到其它系統都还是只能用 gtk+ 自己的。缺点是,中文支援在有些地方会出问题,例如剪贴簿的操作,得自己 patch。但仍然相当推荐,即使是个庞大的 library,效能依旧不会太差,尤其在 Windows 上执行速度并不输 MFC,与其学 MFC,不如学wxWidgets。

3.最后看看Qt

Qt 的功能,应该是这三者加上 MFC 之中最強大的,文件也很完整,又有 RAD 工具可以辅助开发,并且有商业公司做強力后盾。不但有 Windows/X Window/Mac 版本,甚至还有嵌入式系統可用的版本,稳定性还不错,物件封装也算良好,资源比 GTK+ 或wxWidgets 多得非常多,而且发行公司提供了相当多范例,算是一家以开放原始码成功赢利的模范公司。 知名的 KDE整个是用它开发,证明了它的稳定性和強大功能。缺点是如果你用它开发非 GPL 开放程式码的软体,必須以极昂贵的金额,购买商业版本。 而它的图形界面并不完全是 "Native GUI",只是透过 theme 去模拟系統上的标准 GUI,所以看起來很像,却会有些地方可以明显看出破綻。 执行速度缓慢还有过于庞大则是另一个问题。 虽然封装得很良好文件也齐全,并不代表他就很容易学还有一个严重问题是,它写的不是标准C++,它使用的 signal/slot 机制必須透过 Qt提供的 preprocessor 处理过才可以转送給编译器,这部份可能被限定用 qmake,算是一个可惜的地方,不过暇不掩瑜,还是很推荐。忘了说,它內部也是 unicode,多国语言没问题。

以上三套只是简单介紹,其中 Qt 的程式我沒有实际完整开发过,但明显的三套都远远比只能在 Windows 上用,功能少 Bug 多,难学难用,几乎无多国语言支援的 MFC 要強。 三套可跨平台的 library 大家可自行选择,只能用在 Windows 的 MFC 就不用考虑了。

这篇短评发表出来有些时日了,其中的有些观点(比如Qt的授权问题)已经落后于现在的Qt的发展,但其中的大部分论据仍然极有说服力,清晰而简明的指出了几大类库的优缺点,读者朋友可以从中获益。

GTKQtwxWidgets 1、GTK+ GTK+基础 GTK+最初是GIMP的专用开发库,后来发展为Linux下开发图形界面的应用程序的主流开发工具之一。GTK+2.0是自由软件,并且是GNU工程的一部分。GTK+2.0的许可协议是LGPL。 GTK+使用C语言开发,但是其设计者使用面向对象技术。 在GNOME平台上提供了C++(gtkmm)、Perl、Ruby、JavaPython(PyGTK)绑定,其他的绑定有 阅读详情

相关推荐

GTK+, Qt, wxWidgets compare

1.先讲 GTK+ GTK+ 主要用在 X Window 上,整个设计的架构许多概念 MFC 以及一般 Windows 上的程式开发大异其趣,入门门槛较高,而且最主要的特色是,它用不具有物件功能的纯"C" 語言,模擬物件导向。 所以写起来比较复杂艰涩,而且充满大量巨集,使用除错都不是很容易,但优点则是可以用 C,不需 C++,如果 Win32 SDK 比較,不会难学多少,缺点是不易上手使

我们编程吧 1340

GTK+, Qt, wxWidgets 比较简评(ZT)

GTK+, Qt, wxWidgets 比较简评 //这位台湾的高手把GTK+, Qt, wxWidgets比较分析得相当到位。明显,MFC注定将淡出江湖了。 [心得] 知名 GUI lib 简评 (GTK+, Qt, wxWidgets) 之前因为把 MFC 痛骂了一顿,有网友在询问其他 GUI toolkit 所以小弟分享一下个人对三大知名图形介面 library 的简短评论 纯

AdairJun 733

GTKQtwxWidgets(转)

公司使用的是wxWidgets,在开发过程中也发现了不少问题,就想看看有没有更好的跨平台开发库,在网上查到的三个库的比较:转自http://hi.baidu.com/520oy/blog/item/52d8f73187825f1aebc4af9c.html  我所知道的三种开源跨平台GUI toolkits—— GTKQtwxWidgets  1、GTK+ GTK+基础

flyerhua的专栏 2239

分享 GTK+, Qt, wxWidgets 比较简评

【转】http://yuanmuqiuyu2000.blog.sohu.com/101517012.html/这位台湾的高手把GTK+,Qt,wxWidgets比较分析得相当到位。明显,MFC注定将淡出江湖了。 [心得] 知名 GUI lib 简评 (GTK+, Qt, wxWidgets) 之前因为把MFC 痛骂了一顿,有网友在询问其他GUItoolkit 所以小弟分享一下个人对三大知名图

熊尧的专栏 1120

GTK+,wxWidgets,QT比较

GTK+, Qt, wxWidgets 比较简评http://yuanmuqiuyu2000.blog.sohu.com/101517012.html//这位台湾的高手把GTK+, Qt, wxWidgets比较分析得相当到位。明显,MFC注定将淡出江湖了。[心得] 知名 GUI lib 简评 (GTK+, Qt, wxWidgets)之前因为把 MFC 痛骂了一顿,有网友在询问其

uunubt的专栏 1271

知名 GUI lib 簡評

 GTK+, Qt, wxWidgets 比较简评收藏新一篇: MinGW, GDB, Cygwin的概念 | 旧一篇: 从动态直线到手电筒效果function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d.getS

i53nd的专栏 826

GUI简评

网上一篇关于GUI的转帖,看看

Sophia 630

qtgtk+ 对比

一: Qt:      Qt 是Trolltech公司的一个多平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面 向对象的很容易扩展,并且允许真正地组件编程。自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。Qt也是 流行的Linux桌面环境KDE 的基础,同时它还支持Windows、Ma

Hero_Zhouwu的专栏 4118
上一篇: firefox插件(plugin)开发概述
下一篇: Windows下的Gtk+开发环境配置(vc)
fancycow
博客等级 码龄18年 20粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值