`
hqs7636
  • 浏览: 220900 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

GTK+, Qt, wxWidgets 比较简评

阅读更多
http://yuanmuqiuyu2000.blog.sohu.com/101517012.html

//这位台湾的高手把GTK+, Qt, wxWidgets比较分析得相当到位。明显,MFC注定将淡出江湖了。

[心得] 知名 GUI lib 简评 (GTK+, Qt, wxWidgets)
之前因为把 MFC 痛骂了一顿,有网友在询问其他 GUI toolkit
所以小弟分享一下个人对三大知名图形介面 library 的简短评论
纯属个人主观意见,不是业界人士,所知有限,望先进前辈不吝指正或补充

先讲 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 外观

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。

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 就不用考虑了



wxWidgets 内带 wxodbc,可惜 wxd 目前并没有包装它。



总结:wxWidgets性能及ui最好,Qt最大最全,GTK+架构及扩展性最好
分享到:
评论

相关推荐

    GTK+程序设计中文版 .pdf

    SWT 和 wxWidgets 是种很著名的编程框架,也是用 GTK+ 来编程实现的。最杰出的 GTK+ 软件的代表是 Firefox(火狐浏览器)和 Inkscape。 编译 GTK+ 应用程序 有一个非常方便的工具--"pkg-config",可以帮助我们编译 ...

    GTK+ Reference Manual (GTK+ 参考手册 英文) for GTK+ 2.14.3

    GTK+ 参考手册 for GTK+ 2.14.3,最新英文版 GTK+ is a library for creating graphical user interfaces. It works on many UNIX-like platforms, Windows, and on framebuffer devices. GTK+ is released under ...

    GTK+-2.0-中文手册.pdf.7z

    GTK+ 2.0 中文手册是一份详细阐述 GTK+ 库版本 2.0 的技术文档,专为中文用户设计。GTK+ 是一个广泛使用的跨平台图形用户界面工具包,支持多种操作系统,如 Linux、Windows 和 macOS。这份手册旨在帮助开发者理解和...

    Gtk+ 3.6.4 win64.zip

    Gtk+ 3.6.4 是一个用于开发图形用户界面(GUI)的开源工具包,主要面向Linux和其他类UNIX系统,但也有针对Windows平台的版本。这个“Gtk+ 3.6.4 win64.zip”文件是一个包含了Gtk+ 3.6.4在64位Windows操作系统上的SDK...

    linux gtk+-2.0.zip

    Linux系统中的GTK+ 2.0是一个用于创建图形用户界面(GUI)的开源库,它在许多基于Linux的桌面环境中广泛使用,如GNOME。GTK+(GIMP Toolkit)最初是为了GIMP图像编辑器开发的,但随着时间的发展,它已经成为了一个...

    gtk+-bundle_2.24.10-20120208_win32.zip

    这个“gtk+-bundle_2.24.10-20120208_win32.zip”文件是一个针对Windows 32位系统的GTK+ 2.24.10版本的打包下载,包含了开发GTK+应用所需的所有组件和库。这个压缩包主要是为了方便Windows开发者在没有原生支持的...

    gtk+-bundle_2.22.1-20101229_win64

    GTK+(GIMP Toolkit)是一个跨平台的图形用户界面库,广泛用于开发各种类型的应用程序。这个名为"gtk+-bundle_2.22.1-20101229_win64"的压缩包文件是专为Windows 64位系统提供的GTK+ 2.22.1开发包。值得注意的是,它...

    基于C gtk/gtk+ sqlite3选课系统的开发

    在本文中,我们将深入探讨如何使用C语言,结合GTK+/GTK+图形库和SQLite3数据库来开发一个选课系统。这个项目将展示如何利用这些技术创建一个用户友好的图形界面,以及如何处理和存储数据。 首先,让我们了解C语言。...

    gtk+ gtk+-bundle_2.18.7-20100213_win32

    GTK+(GIMP Toolkit Plus)是一个跨平台的图形用户界面(GUI)工具包,广泛用于创建桌面应用程序。这个“gtk+-bundle_2.18.7-20100213_win32”是一个面向Windows操作系统的GTK+ 2.18.7版本的打包文件,发布于2010年2...

    GTK+3.0详细的说明文档

    GTK+3.0是GIMP Toolkit的最新版本,是一个跨平台的GUI库,广泛用于创建图形用户界面。它支持多种操作系统,包括Linux、Windows和macOS。GTK+3.0的详细说明文档提供了全面的学习资源,帮助开发者充分利用其功能。 在...

    GTK+程序设计中文版PDF

    GTK+,全称为GIMP Toolkit,是一个开源的GUI(图形用户界面)工具包,用于创建跨平台的应用程序。它最初是为图像处理软件GIMP(GNU Image Manipulation Program)开发的,但后来发展成为了一个广泛使用的多语言编程...

    gtk+ Visual Studio 2008环境搭建(包含gtk+文件)

    标题中的“gtk+ Visual Studio 2008环境搭建”是指在Windows操作系统上,使用Microsoft Visual Studio 2008开发环境配置GTK+库的过程。GTK+(GIMP Toolkit)是一个跨平台的图形用户界面(GUI)工具包,广泛用于创建...

    Foundations of GTK+ Development

    Foundations of GTK+ Development (PDF 英文版) By Andrew Krause ISBN10: 1-59059-793-1 ISBN13: 978-1-59059-793-4 630 pages Apr 2007 (Apress) GTK+ is one of the most influential graphical toolkits for...

    GTK+GNOME程序设计PDF(高清)2

    本书详细介绍了两种Linux图形用户界面开发技术:GTK+/GNOME。主要内容包括:GUI的基本概念,GLib,GTK+及GNOME的简介,各种GUI元素的创建与使用,bIDE,Glade等等。最后通过两个综合实例来巩固所学知识。本书实例...

    gtk+-bundle_3.10.4-20131202_win64

    GTK+(GIMP Toolkit)是跨平台的图形用户界面(GUI)工具包,广泛用于开发桌面应用程序。这个特定的资源,“gtk+-bundle_3.10.4-20131202_win64”,是一个专为Windows 64位系统设计的GTK+版本的打包下载,版本号为...

    最新的基于GTK+的单词数值计算器-linux

    在Linux操作系统中,开发者经常利用各种图形库来创建用户界面,GTK+(GIMP Toolkit)就是这样一款广泛应用的开源GUI库。最新的基于GTK+的单词数值计算器项目,为Linux用户提供了一个功能丰富的计算工具,同时考虑了...

    GTK + 2.0教程GTK+ 2.0 Tutorial

    ### GTK+ 2.0 教程:通过C接口使用GTK #### 一、引言 GTK+(GIMP Tool Kit)是一种广泛使用的开源图形用户界面工具包,主要用于开发跨平台的应用程序。它最初是为了支持GNU Image Manipulation Program (GIMP)而...

    GTK+修复工具32位.zip

    GTK+修复工具32位.zip是一个专为32位计算机设计的软件包,它包含了用于修复或安装GTK+环境的必要组件。GTK+(GIMP Toolkit)是一个跨平台的图形用户界面工具包,广泛用于创建GUI应用程序。这个压缩包特别为在32位...

    PDF电子书《用GTK+和GDK开发Linux图形用户界面应用》

    GTK+采用了类似于Qt的信号与槽机制,这种机制简化了事件处理过程。当某个UI元素(如按钮)触发特定事件时(如点击),可以通过连接该事件的信号到一个槽函数,从而实现特定的功能。 #### 3.3 主题和样式 GTK+支持...

Global site tag (gtag.js) - Google Analytics