概述 [src]
GTK 是一个用于创建图形用户界面的库。该库适用于许多类似 UNIX 的平台、Windows 和 macOS。GTK 根据 GNU 库通用公共许可证 的条款发布,该许可证允许灵活许可客户端应用程序。GTK 具有基于 C 且面向对象的架构,可实现最大的灵活性和可移植性;它支持许多其他语言的绑定,包括 C++、Objective-C、Guile/Scheme、Perl、Python、JavaScript、Rust、Go、TOM、Ada95、Free Pascal 和 Eiffel。
GTK 工具包中包含“小组件”: GUI 组件,如按钮、文本输入或窗口。
GTK 依赖于以下库
- GLib: 一个通用实用库,不特有于图形用户界面。GLib 提供了许多有用的数据类型、宏、类型转换、字符串实用工具、文件实用工具、主循环抽象等等。更多信息请访问 GLib 网站。
- GObject: 一个提供类型系统、一系列基本类型(包括对象类型)和信号系统的库。更多信息请访问 GObject 网站。
- GIO: 一个现代、易于使用的 VFS API,包括文件、驱动器、卷、流 IO 以及通过 DBus 进行的网络编程和 IPC 的抽象。更多信息请访问 GIO 网站。
- Cairo: Cairo 是一个 2D 图形库,支持多种输出设备。更多信息请访问 Cairo 网站。
- OpenGL: OpenGL 是一个用于开发可移植交互式 2D 和 3D 图形应用程序的主要环境。更多信息请访问 Khronos 网站。
- Vulkan: Vulkan 是一个较新的图形 API,可以将其视为 OpenGL 的后继者。更多信息请访问 Khronos 网站。
- Pango: Pango 是一个用于国际化文本处理的库。其以
PangoLayout
对象为中心,该对象代表一个文本段落。Pango 为GtkTextView
、GtkLabel
、GtkEntry
及所有显示文本的 GTK 小组件提供引擎。更多信息请访问 Pango 网站。 - gdk-pixbuf: 一个小巧、可移植的库,它允许您从图像数据或图像文件创建
GdkPixbuf
(“像素缓冲区”)对象。您可以将GdkPixbuf
与诸如GtkImage
的小组件结合使用,以显示图像。更多信息请访问 gdk-pixbuf 网站。 - graphene: 一个小库,用于提供矢量和矩阵数据类型和操作。Graphene 使用各种 SIMD 指令集(如 SSE 和 ARM NEON)提供经过优化的实现。更多信息请访问 Graphene 网站
GTK 分为三个部分
- GDK: GDK 是一个抽象层,允许 GTK 支持多个窗口系统。 GDK 在 Wayland、X11、Microsoft Windows 和 Apple macOS 上提供窗口系统支持。
- GSK: GSK 是一个 API,用于从称为“节点”的绘图操作中创建场景图,并使用不同的后端渲染它。 GSK 提供了适用于 OpenGL、Vulkan 和 Cairo 的渲染器。
- GTK: GUI 工具包,包含 UI 元素、布局管理器、在 GUI 应用程序中高效使用的存储数据类型,以及更多内容。