10个月后 从最新的试用版开始, 已经发布了新版本的GTK 3.96, GTK 4未来稳定版的新实验版本。
在开发GTK 4时 作为新开发过程的一部分,该过程试图提供稳定的API,并且无需每六个月就可以使用它,因此由于GTK下一个分支中的API更改,您将不得不重做该应用程序。
GTK 3.96的主要新功能
随着该新版本正式发布的到来, 可以突出几个新颖之处 在这之中 其中之一是百老汇的GDK后端已被完全重写 在Web浏览器窗口中显示GTK库的输出。
在以前的Broadway实施中,它不符合GTK 4渲染方法 提议的(现在不使用发送到缓冲区的模型,而是使用基于渲染节点的模型,在该模型中,输出以高级操作树的形式组织,可以由GPU使用OpenGL和Vulkan有效地对其进行处理)。
新版本的Broadway将CSS样式的图形节点转换为DOM节点,以在浏览器中显示界面。 每个新的屏幕状态都作为DOM树相对于先前状态的更改进行处理,从而减小了传输到远程客户端的数据的大小。
该 3D转换和图形效果是通过CSS转换属性实现的。
GDK继续实施API,该API的开发旨在使用Wayland协议并进行X11绑定的API清理或将它们移至单独的X11后端。
继续进行与执行拖放操作相关的代码的重构,包括建议的单独对象GdkDrag和GdkDrop。
将3D变换功能提升到一个级别,该级别允许您创建诸如旋转立方体之类的动画效果。
在 葛兰素史克API (GTK Scene Kit),它通过OpenGL和Vulkan提供图形化的场景绘图, 它已经解决了错误 变得更容易了 多亏了新的gtk4-node-editor调试工具,它允许以序列化格式(可以在GTK检查器模式下保存)加载和显示渲染节点,并且还可以在使用不同后端时比较绘图结果。
其他变化
小部件 GtkAssistant,GtkStack和GtkNotebook已添加到公共对象 对于子级的分页输出,非布局小部件数据的子级属性已传递给这些子级。
由于所有现有的子属性都转换为常规属性,布局属性或移至页面对象,因此已从GtkContainer中完全删除了对子属性的支持。
在此版本中突出的其他更改包括:
- GtkEntry的核心功能已移至新的GtkText小部件,该小部件还包括GtkEditable的高级编辑界面。 基于新的GtkText小部件,所有现有的数据输入子类都将转换为GtkEditable实现。
- 为密码输入表单添加了新的GtkPasswordEntry小部件。
- 添加了新的列表形成模型:GtkMapListModel,GtkSliceListModel,GtkSortListModel,GtkSelectionModel和GtkSingleSelection。 将来,我们计划在GtkListView中添加对列表模型的支持。
- 在GtkBuilder中,添加了设置对象属性的功能(内联),而不是使用按标识符的绑定。
- 已向gtk4-builder-tool添加命令,以将UI文件从GTK 3转换为GTK 4。
- 不再支持关键主题(关键主题),选项卡(表格菜单)和组合框。 GtkInvisible小部件已被删除。
最后,直到GTK 4完全稳定为止,建议建议的用户应用程序继续使用GTK 3.24进行构建。
数据来源: https://blog.gtk.org