GTK+系列---关于GTK+

什么是GTK+?

GTK+或GIMP工具包是用于创建图形用户界面的多平台工具包。GTK+提供了一套完整的构件(widget),适用于从小型一次性工具到完整的应用程序套件等项目。GTK+是跨平台的,并且拥有易于使用的API,从而加快了您的开发时间。GTK+是用C语言编写的,但它是从底层设计的,支持各种各样的语言,而不仅仅是C/C++。使用来自Perl和Python等语言(尤其是与Glade GUI Builder结合使用)的GTK+提供了快速应用程序开发的有效方法。

许可限制

GTK+是免费软件,也是GNU项目的一部分。GTK+的许可条款GNU LGPL,允许所有开发人员使用它,包括那些开发商业软件的人,任何人都不需要许可费或版税。

稳定性

GTK+已经开发了十多年,能够为您的应用程序开发提供诱人的功能和卓越的性能。GTK+得到了大量开发人员的支持,并拥有Red Hat、Novell、Lanedo、Codethink、Unless Mobile和Intel等公司的核心维护人员。

跨平台

最初,GTK+是为X窗口系统开发的,但随着时间的推移,它已经增加了对其他知名窗口系统的后端支持。今天您可以在以下位置使用GTK+:

语言绑定

由于可用的语言绑定,GTK+可用于许多其他编程语言。这使得GTK+成为应用程序开发非常有吸引力的工具包。

语言绑定(或“包装器”)允许从其他编程语言使用GTK+,使用这些语言的样式。它们相对容易创建,因为GTK+设计时考虑了它们。官方的GNOME绑定遵循GNOME发布计划,保证API的稳定性和基于时间的发布。

 适应性

GTK+满足了当今开发人员在工具包中寻找的许多功能,包括:

  • 本土化的外观和感觉
  • 主题支持
  • 线程安全性
  • 面向对象方法
  • 国际化
  • 本土化
  • 可访问性
  • 双向文本支持(从左向右/从右向左)
  • UTF8支持
  • 文档

接口 

GTK+有一个核心构件和接口的综合集合,可在应用程序中使用。

  • 窗口(普通窗口或对话框、关于和助手对话框)
  • 显示(标签、图像、进度栏、状态栏)
  • 按钮和切换(复选按钮、单选按钮、切换按钮和链接按钮)
  • 数字(水平或垂直缩放和数值调节按钮)和文本数据输入(有或无完成)
  • 多行文本编辑器
  • 树、列表和图标网格查看器(具有可自定义的渲染器和模型/视图分离)
  • 组合框(带或不带条目)
  • 菜单(带图像、单选按钮和复选项)
  • 工具栏(带有单选按钮、切换按钮和菜单按钮)
  • GTKbuilder(从XML创建用户界面)
  • 选择器(颜色选择、文件选择器、字体选择)
  • 布局(列表构件、表格构件、扩展器构件、框架、分隔符等)
  • 状态图标(Linux上的通知区域,Windows上的托盘图标)
  • 打印构件
  • 最近使用的文档(菜单、对话框和管理器)

基础

GTK+是建立在glib之上的。glib提供了应用程序中常见的基本算法语言构造。此库具有以下功能:(此列表不是综合列表)

  • 对象和类型系统
  • 主循环
  • 动态加载模块(即插件)
  • 线程支持
  • 定时器支持
  • 内存分配器
  • 线程队列(同步和异步)
  • 列表(单链接、双链接、双端)
  • 哈希表
  • 数组
  • 树(n元和二进制平衡)
  • 字符串实用程序和字符集处理
  • 词汇扫描器和XML解析器
  • base64(编码和解码)

移动设备支持

gmae(gnome mobile&embedded)倡议推动了gnome组件作为移动和嵌入式用户体验平台的使用、开发和商业化。它汇集了行业领导者、专家顾问、关键开发人员以及他们所代表的社区和行业组织。因此,GTK+具有与移动和嵌入式平台需求相关的功能。在过去几年中,GTK+参与了多项嵌入式计划,包括:

起源 

 GTK+最初是为GNU图像处理程序gimp开发和使用的。它被称为“gimp工具包”(The GIMP ToolKit),以便记住项目的起源。今天,它通常简称为GTK+,被大量应用程序使用,包括GNU项目的GNOME桌面。Peter Mattis在Spencer Kimball和Josh Macdonald的帮助下开始了这一切。Marius Vollmer教我们如何使GTK+用于语言绑定。LarsHamann和StefanJeske为核心构件添加了各种特性。CarstenHaitzler设计并完成了主题支持的第一个实现。Shawn Amundson发布了GTK+1.0和GTK+1.2的管理。

体系结构

随着时间的推移,GTK+团队已经将GTK+建立在四个库的基础上:

  • GLib,构成GTK+基础的低级核心库。它为C提供数据结构处理,可移植性封装和接口,用于事件循环、线程、动态加载和对象系统等运行时功能。
  • Pango,用于布局和呈现强调国际化的文本的库。它构成了GTK+文本和字体处理的核心。
  • Cairo,支持多个输出设备(包括x window系统、win32)的二维图形库,同时在所有媒体上生成一致的输出,同时利用可用的显示硬件加速。
  • ATK,用于提供可访问性的一组接口的库。通过支持ATK接口,应用程序或工具包可以与屏幕阅读器、放大镜和其他输入设备等工具一起使用。
发布了27 篇原创文章 · 获赞 18 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/drsonxu/article/details/86595495