GLib、Gtk+、GObject、Atk、GIO 的差异

Lak*_*ash 4 gnome gtk libraries application-development gobject

这些库/术语在 GNOME 开发中有什么区别或关系?

Ser*_*nyy 8

所有这些都是由GNOME 项目开发的库。实际上,它们构建了旨在在 GNOME 环境或使用这些库的任何其他桌面环境中工作的应用程序块。

  • Gtk:用于创建 GUI 界面(窗口及其内容)的小部件工具包/库,GIMP 工具包的缩写。由 GNOME 和 XFCE、Unity、Cinnamon、Mate 等其他桌面使用。引用文档

    GTK+ 是用于在 GNOME 应用程序中构建用户界面的主要库。它提供用户界面控件和信号回调来控制用户界面。

  • GLib:高级数据结构库 ()、编程接口和 IPC 设施。引用GLib 参考手册

    GLib 为用 C 编写的库和应用程序提供了核心应用程序构建块。它提供了 GNOME 中使用的核心对象系统、主循环实现以及大量用于字符串和通用数据结构的实用函数。

    GLib 可以独立于 GObject 和 Gtk 使用。

  • GObject:又名 GLib Object System,对象库(最初用于 C 编程语言,它不是面向对象的,但由于出现了与许多其他语言的绑定)。最初是 GLib 的一部分。在 Gtk 中积极使用,并且 Gtk 中的许多对象(例如 Gtk Window )继承自基本的 GObject 类型。

  • Atk :辅助功能库。可以认为是 Gtk 和辅助功能设备之间的桥梁。引用自文档:

    “ATK 是 GNOME 用来为需要额外支持以充分利用计算机的用户提供可访问性的工具包。屏幕阅读器、放大镜和输入设备等工具使用 ATK 允许通过替代方式与桌面进行丰富的交互.”

所有这些也与GIO、Gnome 输入/输出库密切相关,它处理文件系统信息、文件、设备、应用程序信息以及许多其他抽象,这些抽象使 GNOME 应用程序开发人员的生活变得更轻松。一个例子是 Nautilus 文件管理器,它使用 Gtk 来处理小部件、按钮和窗口;用于查询文件和设备信息的 GIO(请参阅带有代码示例的相关答案);用于文件操作的GLib ;和 Atk使小部件可访问

也可以看看


归档时间:

查看次数:

833 次

最近记录:

6 年,6 月 前