1、GTK+

GTK+基础

GTK+最初是GIMP的专用开发库,后来发展为Linux下开发图形界面的应用程序的主流开发工具之一。GTK+2.0是自由软件,并且是GNU工程的一部分。GTK+2.0的许可协议是LGPL。

GTK+使用C语言开发,但是其设计者使用面向对象技术。 在GNOME平台上提供了C++(gtkmm)、Perl、Ruby、Java和Python(PyGTK)绑定,其他的绑定有Ada、 D、 Haskell、PHP和所有的.NET编程语言。

与其他很多部件工具箱不同,GTK+并不基于Xt。这一决策优劣互见:优点是GTK+可以应用于其他系统,其灵活性也很强;而缺点就是它无法利用以传统方法为X11定制的X资源数据库。

Glade是一个界面设计工具,但是它也包含了一种描述GUI界面的XML语言,它和libglade一起工作就可以直接使用GTK和GNOME控件。

2、Qt

Qt简介

Qt是Trolltech公司的一个产品。
Qt是一个多平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且 允许真正地组件编程。

自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用 程序的基础。Qt也是流行的Linux桌面环境KDE 的基础,KDE是所有主要的Linux发行版的一个标准组件。

Qt支持下述平台: MS/Windows - 95、98、NT 4.0、ME、和2000
Unix/X11 - Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它很多X11平台
Macintosh - Mac OS X
Embedded - 有帧缓冲(framebuffer)支持的Linux平台。

授权模式

Qt开放源代码,并且提供自由软件的用户协议。使得它可以被广泛地应用在各平台上的开放源代码软件开发中。

Qt 提供三种授权方式。三种授权方式的功能、性能都没有区别,僅在于授权协议的不同。LGPL和GPL是免費发布,商业版則需收取授权费。:

  • Qt 商业版 - Qt 商业授权适用于开发专属和/或商业软件。此版本适用于不希望与他人共享源代码,或者遵循 GNU 宽通用公共许可证 (LGPL) 2.1 版或 GNU GPL 3.0 版条款的开发人员。提供了技術支援服務。可以任意的修改Qt的原始碼,而不需要公開。
  • GNU LGPL v. 2.1- Qt 4.5.0 及以后的版本开始遵循 GNU LGPL。LGPL允許鏈結到它的軟體使用任意的許可證,可以被专属软件作为类库引用、发布和销售。可以购买支援服務。
  • GNU GPL v. 3.0 - 如果您希望将 Qt 应用程序与受 GNU 通用公共许可证 (GPL) 3.0 版本条款限制的软件一同使用,或者您希望 Qt 应用程序遵循该 GNU许可证版本的条款,则此版本 Qt 适用于开发此类 Qt 应用程序。可以购买支援服務。

以前Qt却是一个不遵循GPL的商业软件,非自由软件,Qt在版权方面的限制让许多商业公司望而却步。致使大量的人转向GTK。

现在被Nokia收购后推出Qt开源版是Qt仅仅为了开发自由和开放源码软件, 提供了和商业版本同样的功能。GNU通用公共许可证下,它是免费的。

  从2009年3月发布的Qt 4.5 起,诺基亚将为Qt增添新的开源LGPL授权选择。

  从2009年5月11日起,诺基亚Qt Software 宣布 Qt源代码库面向公众开放,Qt 开发人员可通过为 Qt 以及与 Qt 相关的项目贡献代码、翻译、示例以及其他内容,协助引导和塑造 Qt未来的发展。为了便于这些内容的管理,Qt Software 启用了基于 Git 和 Gitorious 开源项目的Web 源代码管理系统。

  在推出开放式 Qt 代码库的同时,Qt Software 在其官方网站发布了其产品规划(Roadmap)。其中概述了研发项目中的最新功能,展现了现阶段对 Qt 未来发展方向的观点,以期鼓励社区提供反馈和贡献代码,共同引导和塑造 Qt 的未来。

3、wxWidgets

开源软件(LGPL),针对C++、Python以及Perl的跨平台工具集。

详细介绍,参见细述 wxWindows
wxWidget作为一个C++ GUI Library从1992发展到现在,已经在全球范围内产生了极大的影响力,利用这个类库进行GUI开发的软件更是不计其数。

wxWidgets原名wxWindows,是由Julian Smart于1992年还在英国爱丁堡大学人工智能应用研究所开始的一个项目。Julian Smart现在是Anthemion软件公司的技术总监。

简单地说,wxWidgets提供了用于可在多平台上开发GUI应用程序的一整套简单易学易用的API。wxWidgets支持的多平台包括
Windows 3.1/95/98/NT/2000/XP、带有Motif
1.2版本以上的Unix、带有GTK+的Unix/Linux/*BSD、Mac等等。开发者只需要用自己使用的系统平台的编译器编译源程序,并链接上
相应的库文件,生成的程序代码即具有该平台的外观和界面。在这些GUI之上,wxWidgets还提供了在线帮助、网络编程、流处理、多种常用图形格式支
持、数据库支持、HTML察看和打印,等等各种强大的功能。

wxWidgets支持的Windows上的多种流行编译器包括:
Visual C++ 1.5, 4.0, 5.0, 6.0
Borland C++ 4.5, 5.0
Borland C++ Builder 1.0, 3.0
Watcom C++ 10.6 (Win32)
Cygwin
MinGW32
Metrowerks CodeWarrior 4

wxWidgets和GTK+的一大吸引力是它的wxWidgets 2 licence类型是属于LGPL ( Lesser
General Public License
)的,也就是说,使用它开发的软件并不要求一定得公开源码。这样,无论是免费软件的开发者、GPL类型软件开发者,还是纯粹商业软件开发者都可以免费使用
这个软件包。

相比之下,TrollTech的Qt似乎正是因为此因素而影响了它的受接受程度,因为用Qt开发商用软件者所需交纳的费用对于个人
开发者来说还是比较昂贵的,而且分单平台、二平台、三平台(即Qt/X11、Qt/Windows和Qt/Mac都包含在内了)三个不同产品包,又分
Professional和Enterprise不同Edition亦即不同价位,而且开发人员数不同价格也不同。

从这点说来,wxWidgets是绝对具有优势的。另外Qt起源于Linux上的开发,后来推展到Windows、Mac等其它平台;而wxWidgets恰好相反,始于Windows,其后移植到Unix等其它平台。

关于LGPL(Lesser General Public License ) 许可,这是 GNU
许可家族中一个不太严格的许可。LGPL 允许任何人使用该库提供的功能,而不
要求用户公开应用程序代码。(这对于许多工业应用来说很重要,因为由于以前的协议或许可,这种场合下一般不希望公开代码或者公开代码是显然不现实的。)使
用 LGPL 许可,您既可以是开放源码社区的好伙伴也可以是好公民。

GTK、Qt和wxWidgets相关推荐

  1. Qt和wxWidgets 比较 以及其他GUI库

    这个,我个人觉得Qt比wxwidgets有前途多了,无论是资源还是人数,还是社区.关键是QT有商业公司和社区支持. 现在的QT无孔不入,win,linux,IOS,android,嵌入式板子,pyQT ...

  2. qt creator 官中 不完整_C++跨平台框架Qt和wxWidgets哪个好?对比图告诉你!

    还在为寻找C++跨平台用户界面框架库而发愁吗?本文内容轻松解决您的烦恼! 说到C++跨平台用户界面框架库,不少人首先想到的就是Qt框架吧!Qt是一个1991年开发的跨平台C++图形用户界面应用程序开发 ...

  3. GTK+, Qt, wxWidgets compare

    1.先讲 GTK+ GTK+ 主要用在 X Window 上,整个设计的架构和许多概念和 MFC 以及一般 Windows 上的程式开发大异其趣,入门门槛较高,而且最主要的特色是,它用不具有物件功能的 ...

  4. x11 gtk qt gnome kde 之间的区别和联系

    转自:http://blog.csdn.net/lanmayi003/article/details/6584521 一,Linux本身没有图形界面,linux现在的图形界面的实现只是linux下的应 ...

  5. MFC、WTL、WPF、wxWidgets、Qt、GTK 对比

    文章目录 WTL MFC GTK wxWidgets Qt WPF cocoa OWL delphi 总结 WTL WTL都算不上什么Framework,就是利用泛型特性对Win API做了层封装,设 ...

  6. wxWidgets:在 Unix (GTK+) 下打印

    wxWidgets:在 Unix (GTK+)下打印 wxWidgets:在 Unix (GTK+) 下打印 wxWidgets:在 Unix (GTK+) 下打印 在 Unix 下打印一直是问题的一 ...

  7. Qt、GTK 和KDE、GNOME的关系-转

    Linux 下的图形库介绍 在进行Linux下的图形系统编程时,我们常常会遇到以下这些概念: Framebuffer, X11, SDL,DFB, miniGUI, OpenGL,QT, GTK,KD ...

  8. c gui qt 4编程第二版_我的QT5学习之路(一)——浅谈QT的安装和配置

    一.前言 说到Qt,不能不说到C++,这门伟大的语言.因为其面向对象的编程思想和陡峭的学习曲线,一开始学习起来很是吃力.Qt从QT4开始基本封装了很多C++的工具库和界面库,而且支持跨平台,这是它最大 ...

  9. qt widget 嵌套与弹出_Gtk widget 与 Qt Widget的相互嵌套

    简述 gtk qt窗口的相互嵌套.主要是使用了Gtk中的socket跟plug的模式,与Qt中的QX11EmbedContainer.这是两个不同的UI库的相互嵌套的方法.google了下发现有个老哥 ...

  10. QT学习之路2 学习笔记

    QT学习之路2 学习笔记 1.Qt 是一个著名的 C++ 应用程序框架.你并不能说它只是一个 GUI 库,因为 Qt 十分庞大,并不仅仅是 GUI 组件.使用 Qt,在一定程度上你获得的是一个&quo ...

最新文章

  1. 百度AI开放平台3.0:平等赋能成为百度AI关键词
  2. SQLite第八课 auth.c授权文件解析
  3. Android7.0 PowerManagerService(2) WakeLock的使用及流程
  4. ios获得通讯录中联系人的所有属性
  5. CDH 版本 Kafka 外网设置
  6. diff命令两个服务器文件,LINUX命令diff-文件管理-比较给定的两个文件的不同
  7. 多磁盘自动分区自动挂载脚本
  8. 基于PLC的智能化配电箱系统
  9. 解除微信授权的html5网页,微信授权登录网页管理在哪里看?如何取消授权
  10. bt服务器搭建 linux_linux系统架设BT服务器的详细教程
  11. java 界面登录界面_Java登录界面的实现(注册、登录、背景图片)
  12. BLEU——机器翻译评测
  13. 一个封锁操作被对wsacancelblockingcall_突破封锁再进一步,华为鸿蒙OS成功登上手机...
  14. cron表达式及其验证方法
  15. 最新弹幕播放器源码/支持对接苹果+蓝光接口API
  16. C++中fstream 的使用一
  17. shaderToy初学笔记(一)(​转载自最简单的ShaderToy入门 - 笑脸渲染_亨利王的博客-CSDN博客_shadertoy)
  18. shp转osm格式——道路文件格式转换
  19. thinkphp网站提示缓存文件写入失败
  20. 视频节目 | Apache Pulsar PMC 成员讲述「开源之道」

热门文章

  1. java 水仙花数问题(java50道经典编程题)
  2. 最新版本的NGUI插件NGUI Next-Gen UI
  3. 《SQL注入攻击与防御(第2版)》百度网盘链接
  4. python3实现校园网认证客户端
  5. java通达信_通达信公式转换JAVA
  6. java注解拦截_轻松实现java拦截器+自定义注解
  7. 编辑实测:迅捷PDF转换器怎么将PDF转换成JPG
  8. 大数据智能运维平台方案-2
  9. 计算机与编程基础知识
  10. Java商城项目实战