标题：GTK+
简介
GTK(GIMP Toolkit)是一套跨多种平台的图形工具包,按LGPL许可协议发布的。虽然最初是为GIMP写的，但目前已发展为一个功能强大、设计灵活的一个通用图形库。特别是被GNOME选中使得GTK+广为流传，成为Linux下开发图形界面的应用程序的主流开发工具之一，当然GTK+并不要求必须在Linux上，事实上，目前GTK+已经有了成功的windows版本。[1]
GTK虽然是用C语言写的，但是您可以使用你熟悉的语言了使用GTK，因为GTK+已经被绑定到几乎所有流行的语言上，如：C++, Guile, Perl, Python, TOM, Ada95, Objective C, Free Pascal, and Eiffel。[1]
在 GTK+ 的最新版本 —— 2.8 版上，仍然在进行许多活动，同时，GIMP 无疑仍然是使用 GTK+ 的最著名的程序之一，不过现在它已经不是惟一的使用 GTK+ 的程序了。已经为 GTK+ 编写了成百上千的应用程序，而且至少有两个主要的桌面环境（Xfce 和 GNOME）用 GTK+ 为用户提供完整的工作环境。
特点
使用 GTK+ 这样的库比起编写自己的 GUI 代码来有多个优势。例如，它可以显著节约开发时间，让开发人员把精力集中在项目真正重要和真正独特的地方，而不必重复公共的功能。对于用户来说，这意味着他们使用的应用程序之间具有更好的一致性：工具包能在哪使用，应用程序就能跟到哪里。就像使用 LEGO 一样，所有的人都使用同一兼容尺寸这一事实，意味着设计可以在使用库的人之间共享，不论他们在哪里使用它。
在现实中，现代的 GUI 工具包做的工作不仅仅是避免重复。它们提供了许多高级功能，用户希望在他们的应用程序中拥有这些功能，但是用别的方法得不到这些功能，因为在这类工具包上所投入的时间和工作，要远远超过在单一应用程序上的花费。所以，如果在应用程序中使用 GUI 对您来说很重要，那么请使用工具包。除此之外别无他法。现在剩下的惟一问题就是，应当使用哪个工具包？
优势
不论开发的需要是什么，GTK+ 可能就是您正在寻找的答案。GTK+ 提供了许多东西：
它既现代，而且得到了积极的开发与维护，围绕它有一个充满活力的社区。 
它提供了广泛的选项，用于把工作扩展到尽可能多的人，其中包括一个针对国际化、本地化和可访问性的完善的框架。 
它简单易用，对开发人员和用户来说都是这样。 
它的设计良好、灵活而可扩展。 
它是自由软件，有一个自由的开放源码许可。 
它是可移植的，从用户和开发人员的角度都是这样。
设计良好、灵活和可扩展编写 GTK+ 的方式允许在不扭曲基本设计的情况下，让维护人员添加新功能、让用户利用新功能。工具包也是可扩展的，这意味着可以向其中添加自己的块，并用使用内置块一样的方式使用它们。例如，可以编写自己的控制元素，比如说用于显示应用程序处理的科学数据，并让它正确地遵照用户选择的显示风格，就像 GTK+ 自身的控件那样。
更进一步，GTK+ 是可定制的，这样就可以让它适应自己的需求。GTK+ 有一个系统，可以在所有应用程序之间复制设置，包括主题的选择。主题 是一组一同发布的定制设置，会影响 GTK+ 使用的基本控件看起来的效果，甚至某种程度上的行为方式。使用主题，可以（例如）模拟另一个操作系统的观感。
带有自由开放源码许可的自由软件自由软件 意味着每个人不仅可以自由地获得和使用这个工具包，还可以在满足某些条件的情况下修改并重新发布它。自由开放源码许可 意味着这些条件不是严格限制的，可以得到的自由程度是显著的。最重要的是，GTK+ 采用了 Lesser General Public License (LGPL) 许可，这是 GNU 许可家族中一个不太严格的许可。LGPL 允许自由地获取、修改和发布它覆盖的任何软件，只要对修改也保持自由即可。LGPL 还允许任何人使用该库提供的功能，而不 要求用户公开应用程序代码。（这对于许多工业应用来说很重要，因为由于以前的协议或许可，这种场合下一般不希望公开代码或者公开代码是显然不现实的。）使用 LGPL 许可，您既可以是开放源码社区的好伙伴也可以是好公民。
可移植最后（但并不是最不重要），GTK+ 是可移植的。这意味着用户可以在许多平台和系统上运行它。另一方面，开发人员可以把软件提供给众多用户，却只要编写一次程序，还可以使用许多不同的编程和开发平台、工具和编程语言。所有这些都可以理解为更多的潜在用户，您可以利用更好地满足需求的更广泛的技能和工具。
所有这些优势组合在一起，让 GTK+ 成为软件开发的坚实基础。有了它，就能够把注意力集中在解决实际问题上，而不必重新发明轮子，而且您也可以确信创建的应用程序会按照用户预期的方式运作、解决他们的问题，而不必创建新的应用程序。
现代的且开发积极的工具包GTK+ 是采用软件开发中的最新技术开发的，只要发现缺陷（肯定有缺陷，因为没有任何软件是完美的），开发人员就会尽力在下一版本中修补缺陷。使用现代的软件意味着，您不会陷在过时的工作中，而跟不上时代的发展。
持续的维护和开发也意味着您拥有影响工具包的未来发展方向的能力。另外，在出现新的发行版时，会引入基于用户反馈的新特性和新功能，而旧的问题则得到修补。
国际化、本地化和可访问性在创建要让所有人使用的软件的时候，请记住三个关键字：国际化、本地化和可访问性（通常分别缩写为 i18n、l10n 和 a11y）。
国际化 是将程序准备为被母语不是开发应用程序所采用的语言的人使用的过程，所以应用程序不依赖于对任何特定语言的任何假设。
i18n 远远不只是对程序使用的文本进行翻译。它还意味着要考虑所使用的不同脚本和字母表、不同的编写方向、显示许多语言所需要的特殊处理以及为用户提供输入文本的适当方法。不是每种语言都可以简单地把每个字母映射到键盘上的不同键，而且还必须实现更好的复杂性，例如确保在错误消息中使用正确的复数。
本地化 与 i18n 密切相关，因为为国际用户准备应用程序不仅仅是改变语言。程序还必须能够理解并尊重日期、货币显示、数字标注、文本排序所使用的不同习惯，以及许多可能不太注意的细节之处 —— 例如有些符号的使用，在世界的不同地方可能会被认为是不恰当的或无礼的。
正像 i18n，正确的 l10n 要求在代码中添加很多东西，而这些是事后很难轻松加入的。GTK+ 提供了针对 i18n 和 l10n 的恰当工具，会让代码（和二进制）可以在许多语言和地域上不加修改地运行。切换地域所需要的就是随操作系统（针对 l10n）或者一个可独立于实际的程序进行处理和发布的翻译文件（针对 i18n）一起发布的一组数据。带来的灵活性会得到开发人员、翻译者和用户的热爱。
可访问性是让每个人都可以使用您的程序。有些用户的视力不佳，有些人可能不能用键盘或鼠标，而有些人可能只能移动他们的眼睛。要确保每个想使用您的应用程序的用户都能使用，需要做许多工作。幸运的是，GTK+ 提供了一个途径，可以通过一个完善的预先存在的 a11y 框架，立即得到这方面的支持，而您这边几乎什么工作也不需要做。使用这个框架（它是 UNIX® 系统上的事实标准），可以把应用程序带给各类用户。
您也能享受 a11y 的许多优势 —— 例如执行自动 GUI 测试的能力。通过让特殊需求用户运行的可访问性软件可以使用您的应用程序，您也可以让测试软件可以访问它，例如，检查行为是否正确 —— 这在传统的 GUI 编程中会带来严重的问题。（还值得记住的是：现在，a11y 不再被当作 “好” 东西。许多法规 —— 例如有关美国政府用软件的规则 —— 实际上要求软件对特殊需求的用户有恰当的支持。）
以上三点可能是使用工具包的充足理由 —— 特别是 GTK+，它在这三个领域都有优秀的支持。这个支持绝不完美，但在同类软件中是最好的，而且把这些关键字整合进应用程序的重要性并没有提到应有高度。在今天的世界中，计算机无处不在，用户众多而且独特，所以不能认为一个遗漏一整群用户的应用程序是一个完整的产品。
简单易用这一点应当很明显，但是它实际上含义丰富。工具包对用户应当容易，这样才有可能创建简单的、直觉的和乐于使用的界面，哪怕针对的是新手。创建人机交互的正确模型不是一项简单的任务，GTK+ 正是长时间工作的结果，而且是众多的甚至困难的决策的结果。
GTK+ 对于开发人员也易于使用。它允许开发人员用简单的方式说出自己想要的东西，不会用所谓正规方式给开发人员带来负担，这些正规方式是计算机为了弥补它们固有的缺乏想像力的缺陷而施加给人类的负担。
版本发布
[2]2012年5月13日，GTK+ 3.4.3 发布，该版本重写了 GtkIconView 的大小和布局，修复了一些小 bug。　
2012年07月18日，GTK+ 3.5.8 发布，该版本增加一个新的命令行工具 gtk-launch 用于从桌面文件中启动应用，新的部件 GtkStrengthBar 用于显示某些级别和数量；更新了 Wayland 协议，修复了很多小bug。[3]
2012年08月08日，GTK+ 3.5.10 发布，该版本改进了 Wayland 后端，废弃对 GDK 线程的支持，修复了一些小bug。[4]
2012年08月22日 ，GTK+ 3.5.12 发布，GUI 开发工具包。[5]
2012年09月06日，GTK+ 3.5.16 发布，该版本修复了启动 Nautilus 时的关键警告信息。[6]
2012年09月23日 ，GTK+ 3.5.18 发布，GTK+ 3.5.18 改进内容：
1. GMenu 支持 actions 命名空间，允许子菜单包含打开的 action，添加一个新的函数 gtk_menu_shell_bind_model().
2. 支持 CSS 的 cross-fading 和 transitions 以及动画
3. 调整 Scrollbar 和比例行为以适应 OS X 平台
4. 修复了一些小 bug。[7]
2012年12月31日，GTK+ 3.7.4 发布，大大改进字体处理。
GTK+ 3.7.4 大大改进了字体处理，在字符串里适当处理 Unicode省略号；一些显著的性能提升等等。[8]