Rust UI 结构:Slint 1.3 发布,改善原生款式和 JavaScript API,测验支撑运用 Slint 构建 Android 运用

近来,Slint 发布了 1.3 版别,引进许多增强开发体会的新功用和改善。来看一下 Slint 的首要更新点吧:

Windows 和 Mac 引进新的默认原生款式

新版别Slint中 更改默认风格款式,以供给更实在的 Windows 和 macOS 界面。Windows上选用 Fluent 风格款式,Mac上则选用Cupertino风格款式。关于 Linux,Slint 持续运用可用的 Qt,这样能够保证始终如一的“原生”Linux 感觉。

Mac 上的Cupertino风格:

Rust UI 结构:Slint 1.3 发布,改善原生款式和 JavaScript API,测验支撑运用 Slint 构建 Android 运用

Windows 上的 Fluent 风格:

Rust UI 结构:Slint 1.3 发布,改善原生款式和 JavaScript API,测验支撑运用 Slint 构建 Android 运用

根据 napi-rs 的 NodeJS API

能够运用napi-rscrate 进行 NodeJS 集成。Slint 现在与一切最新的 NodeJS 版别兼容,并答应集成到 NodeJS 事情循环中。假如你在寻觅 Electron 的代替计划的开发人员,并想在 JavaScript 中创立轻量级 GUI 运用程序,能够考虑运用 Slint。

假如你想要探究了解更多关于在JavaScript 中的 运用 Slint 的知识,能够参阅 Slint 官方的JavaScript 文档教程

启动 Android 版移植开发作业

Slint 开发团队已开端测验将 Slint 引进 Android,不过目前它还没有准备好投入生产(笔者猜想是计划还不够成熟,既然已经迈出这一步,强烈等候一下),喜爱折腾的同学能够按官方教程尝下鲜。

在 Android 上运用 Slint 构建 GUI ,需求借助android-activitycrate 的i-slint-backend-android-activity

PS: 这是一个内部 crate,不遵从 semver 版别标准。

Rust UI 结构:Slint 1.3 发布,改善原生款式和 JavaScript API,测验支撑运用 Slint 构建 Android 运用

能够检查运用文档: Android后端的文档SlintAndroid

简化导入组件库的步骤

现在能够轻松地将组件库导入到代码库中。新版别附带了支撑从外部库导入组件的基础设施。库查找路径在构建脚本中或经过环境变量定义。

以下比如演示了将代码从foo库导入FooWidget

import { FooWidget } from "@foo";

更多改善

Slint 1.3版别包含许多过错修正和增强功用:

  • Slint VSCode 插件优化了重构功用;
  • 改善了与rust-analyzer分析器的slint!宏集成;
  • TouchArea现在能够接收翻滚事情,GridLayout能够有不同的水平或垂直距离值,更多缓动曲线(easing curves)可用于自定义动画,答应一个新组合框预览选择款式;

Slint 1.3.0 版别晋级日志

General

  • 最低 Rust 版别是 1.70。
  • 环境SLINT_DEBUG_PERFORMANCE变量现在也与软件烘托器兼容。
  • 修正了省掉或对齐的多行文本中的文本烘托和光标定位问题。
  • 更改了默认款式,Windows 上默认fluent,macOS 上默认为cupertino
  • LinuxKMS 后端:添加了对绝对运动指针事情的支撑,修正了对缩放屏幕上接触输入的支撑,以及改善了 EGL 烘托的编码器/CRTC 处理。
  • Skia 烘托器/winit 后端:当 GPU 加速不可用时,回退到 Skia 软件烘托。
  • 修正了在同一回调中更改模型数据后拜访回调中的模型数据不会反映更新的过错。(#3740)

Slint

  • InputType枚举添加了Number Decimal变体。
  • GridLayout组件新增spacing-horizontalspacing-vertical属性.
  • 修正了结构数组数组中的转化 (#3574)。
  • 添加scroll-event回调到TouchArea.
  • 添加了对函数的protected支撑。
  • ComboBox能够经过翻滚事情更改选择。
  • SpinBox能够经过翻滚事情添加和削减值。
  • 添加focus-changed-event回调到FocusScope.
  • 添加了许多新的缓动曲线(easing curves)。
  • 添加了Spinner

JavaScript

  • 移植到napi-rs。
  • 更新API。

Rust

  • 改善了 rust-analyzer 对slint!宏的支撑。
  • 添加source_model()MapModel,FilterModel,SortModel,ReverseModel以拜访内部模型。

C

  • 消除了生成代码中对 C 反常的需求。
  • 添加了仅构建 Slint 编译器或运用外部编译器的功用。
  • ESP-IDF:在交流帧缓冲区之前等候垂直同步。
  • 修正了从 Slint 拜访空模型时产生的溃散。

LSP

  • 添加了“Wrap元素”、“Remove元素”、“Repeat元素”和“Make conditional”代码操作。
  • 在预览中添加了带有款式选择器的工具栏。

参阅