Rust UI 框架:Slint 1.1 发布,新增免版税许可证

Rust UI 框架:Slint 1.1 发布,新增免版税许可证

Slint 是一个功能强大的用户界面库,用于桌面和嵌入式的下一代原生 GUI 工具包。伴随着一系列令人兴奋的新功能和改进, Slint 这个广受欢迎的 UI 库发布了1.1 版本,这是 1.0 里程碑后的第一个重要功能更新版本。

除了新功能,Slint 1.1 带来了新的免版税开源许可证:之前 Slint 遵循 GPLv3 和专有商业许可,现在有了新的免版税许可选项。

此外,Slint 的示例和教程现在已获得 MIT 许可,同时该项目还采用了简化的贡献值协议( CLA )。

新功能亮点(New Feature Highlights)

翻译(Translations)

引入了基础设施来本地化您的应用程序。在 Slint 代码中使用新的 @tr() 宏来标记要翻译的字符串。然后使用 gettext 框架提取并处理这些字符串。

Text { text: @tr("Hello, World"); }

增强的 Fluent Style 和新的小部件

Slint 1.1 调整了 fluent 小部件样式,以符合 Microsoft 的现代 Fluent2 设计原则。集合中添加了两个新的小部件, Switch 和 ProgressIndicator 。

新的小部件库现在展示了新调整的 Fluent2 风格,以及两个新的小部件:

Rust UI 框架:Slint 1.1 发布,新增免版税许可证

AccessKit 的辅助功能

在 Slint 的早期版本中,要使用屏幕阅读器等辅助技术,需要安装 Qt。

现在有了新的 AccessKit 集成,所有桌面平台上均可启用辅助功能支持。 AccessKit 是一个丰富的跨平台库,提供了对操作系统可访问性 API 的抽象。 

OpenGL 集成

Slint 主要关注 2D 图形用户界面。此版本中引入了 API,允许将 3D OpenGL 渲染直接集成到 Slint 场景中。使用Image::from_borrowed_gl_2d_rgba_ture(Rust)Image::create_from_borrowed_gl_2d_rgbon_ture(C++)函数从 OpenGL 纹理创建slint::Image。OpenGL 纹理示例演示了如何使用此 API 将带有 OpenGL 的场景渲染为纹理,然后将其与小部件混合。

Rust UI 框架:Slint 1.1 发布,新增免版税许可证

OpenGL 3D Scene rendered into a Slint scene with widgets

Slint 语言中的枚举声明

在 Slint 中支持声明枚举是呼声最高的功能之一,本次升级实现了此特征,在 .slint 代码中声明枚举, export 将它们导出到 Rust 或 C++,并享受重构时增加的类型安全性。

以下是如何在Slint中定义枚举的示例:

enum Color { red, green, blue }

作为一个实验,Olivier记录了自己实现这一功能的过程。如果你喜欢视频编码,可以在YouTube上查看他的录音(www.youtube.com/watch?v=c4O…).

较小但值得注意的功能和错误修复

  • 启用新的 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 无署名许可证下实现,没有版权限制。

总结

Slint 是一个声明性 GUI 工具包,用于为用 Rust、C++或JavaScript编写的桌面和嵌入式应用程序构建本地用户界面。更多信息,请访问 slint.dev 或在上查看源代码 github.com/slint-ui/sl…

参考

原文链接:https://juejin.cn/post/7249336990105993271 作者:RustCoder

(0)
上一篇 2023年6月28日 上午10:05
下一篇 2023年6月28日 上午10:15

相关推荐

发表回复

登录后才能评论