Slint 1.1 的发布,这是 1.0 里程碑后的第一个重要功能更新。
除了新功能,Slint 1.1 带来了新的免版税开源许可证:之前 Slint 遵循 GPLv3 和专有商业许可,现在有了新的免版税许可选项。
此外,Slint 的示例和教程现在已获得 MIT 许可,同时该项目还采用了简化的贡献值协议( CLA )。
新功能亮点
翻译
引入了基础设施来本地化您的应用程序。在 Slint 代码中使用新的 @tr()
宏来标记要翻译的字符串。然后使用 gettext 框架提取并处理这些字符串。
Text { text: @tr("Hello, World"); }
增强的流畅风格和新的小部件
Slint 1.1 调整了 fluent
小部件样式,以符合 Microsoft 的现代 Fluent2 设计原则。集合中添加了两个新的小部件, Switch
和 ProgressIndicator
。
新的小部件库现在展示了新调整的 Fluent2 风格,以及两个新的小部件:
AccessKit 的辅助功能
在 Slint 的早期版本中,要使用屏幕阅读器等辅助技术,需要安装 Qt。
现在有了新的 AccessKit 集成,所有桌面平台上均可启用辅助功能支持。 AccessKit 是一个丰富的跨平台库,提供了对操作系统可访问性 API 的抽象。
OpenGL集成
此版本中引入了 API,允许将 3D OpenGL 渲染直接集成到 Slint 场景中。
Slint 语言中的枚举声明
在 .slint
代码中声明枚举, export
将它们声明为 Rust 或 C++,并享受重构时增加的类型安全性。
enum Color { red, green, blue }
较小但值得注意的功能和错误修复
- 启用新的
renderer-winit-skia-vulkan
功能以使用 Vulkan 渲染到屏幕。 - 使用
absolute-position
属性可查询 Slint 中任何元素的窗口绝对坐标。 - 使用
spawn_local()
在 Slint 的事件循环中运行 Rust futures 。 - 使用新的
mix
、with-alpha
和transparentize
颜色函数微调颜色。 - 修复了对使用文本渲染 SVG 的支持。
有关所有更改的完整列表,请查看更改日志。
更宽松的许可证
- 除了 GPLv3 和专有商业许可,此版本添加了新的免版税许可作为第三个选项,该许可证可免费用于构建桌面或 Web 应用程序,并消除了 Copyleft 许可证的限制。
- 所有示例、教程中的示例代码等现在都可以在宽松的 MIT 许可证下使用。这可以在应用程序中自由复制、修改和使用代码,而不受任何 Copyleft 条款的限制。
- 简化了 CLA 协议,所有贡献现在均在 MIT 无署名许可证下实现,没有版权限制。
发布公告:https://slint.dev/blog/slint-1.1-released