经过六个月的开发,跨平台图形用户界面工具包 GTK 4.10.0 正式发布。GTK 4 采用全新的开发流程,旨在为应用程序开发者提供稳定且持续数年的 API 支持,使他们无需因最新 GTK 分支的 API 变更而每六个月就重新编写应用程序。
GTK 4.10 中一些最显着的改进包括:
- GtkFileChooserWidget 实现了一个用于在应用程序中选择文件的对话框,现在新增了一种模式,可以将目录内容以图标网络的形式呈现。经典的列表视图仍然默认使用,但面板右侧新增了一个专用的图标按钮,用于切换到图标模式:

- 新增了 GtkColorDialog、GtkFontDialog、GtkFileDialog 和 GtkAlertDialog 类,分别用于实现选择颜色、字体和文件的对话框,以及显示警告信息的功能。这些新类具有更一致、更平衡的 API,并以异步模式 (GIO async) 运行。在条件允许的情况下,这些新对话框会利用 Freedesktop 门户 (xdg-desktop-portal),以便从隔离的应用程序访问用户桌面资源。
- 新增了后端 CPDB(通用打印对话框后端),提供用于打印对话框的标准处理程序。之前使用的 lpr 打印后端已停止支持。
- GDK 库作为 GTK 和图形子系统之间的中间层,引入了 GdkTextureDownloader 结构,用于在 GdkTexture 类中加载纹理,并可用于转换各种格式。使用 OpenGL 进行纹理缩放的功能也得到了改进。
- GSK(GTK Scene Kit)库能够通过 OpenGL 和 Vulkan 渲染图形场景,并实现了对遮罩节点和可缩放纹理的自定义过滤的支持。
- 已实现对新版 Wayland 协议扩展的支持。改进了使用“xdg-activation”协议时的启动通知。解决了高密度屏幕上的光标大小问题。
- GtkMountOperation 类经过调整,可在非 X11 环境中工作。
- Broadway 后端允许在 Web 浏览器窗口中渲染 GTK 库输出,现在增加了对模态窗口的支持。
- GtkFileLauncher 类提供了一个新的异步 API 来取代 gtk_show_uri。
- gtk-builder-tool 工具改进了模板处理。
- GtkSearchEntry 小部件现在支持占位符文本,当字段为空且没有输入焦点时,将显示该文本。
- 新增了 GtkUriLauncher 类来替换 gtk_show_uri 函数,该函数用于确定要启动哪个应用程序来显示给定的 URI,或者在没有处理程序时显示错误。
- GtkStringSorter 类现在支持各种“排序”方法,允许根据字符的含义(例如,是否存在重音符号)进行比较和排序。
- 大量 API 和组件已被弃用,将在未来的 GTK5 分支中弃用,并被可在异步模式下工作的类似组件所取代:
- GtkDialog(应该使用 GtkWindow)。
- GtkTreeView(应该使用GtkListView和GtkColumnView)。
- GtkIconView(应该使用 GtkGridView)。
- GtkComboBox(应该使用 GtkDropDown)。
- GtkAppChooser(应该使用 GtkDropDown)。
- GtkMessageDialog(应该使用GtkAlertDialog)。
- GtkColorChooser(应该使用 GtkColorDialog 和 GtkColorDialogButton)。
- GtkFontChooser(应该使用 GtkFontDialog 和 GtkFontDialogButton)。
- GtkFileChooser(应该使用 GtkFileDialog)。
- Gtk信息栏
- GtkEntryCompletion
- GtkStyleContext
- Gtk音量按钮
- Gtk状态栏
- GTK助手
- GtkLockButton
- gtk_widget_show/hide
- gtk_show_uri
- gtk_render_ 和 gtk_snapshot_render_
- gtk_gesture_set_sequence_state
- GtkAccessible 接口已公开,允许集成第三方辅助功能 UI 元素处理程序。此外,还新增了 GtkAccessibleRange 接口。
- 在平台上 macOS 支持使用鼠标拖放元素(DND,拖放)。
- 在平台上 Windows 改进了与系统设置的集成。
- 调试输出格式已统一。
- JPEG图像上传器的内存限制已提高到1GB。
来源: opennet.ru

