SlintRust 原生 GUI 工具包
Slint 是一个用于为桌面和嵌入式设备构建原生 GUI 的综合工具包,基于 Rust 实现。
使用 Slint,可以为各种操作系统和处理器架构开发 UI:
- Linux(桌面和嵌入式)、macOS、Windows、WebAssembly、Blackberry QNX,甚至裸机(没有任何操作系统)
- ARM Cortex-M 和 Cortex-A、Intel x86、RISC-V、Cadence Tensilica 等。
- 软件渲染或硬件加速图形 API,例如 OpenGL ES。
在浏览器中查看 DEMO (通过 WebAssembly )
Slint 支持多种编程语言,例如 Rust、C++ 和 JavaScript。
- C++ 程序员可使用 Slint 的现代 C++ API 和 CMake 集成。
- JavaScript 程序员可以试用我们的 NodeJS 包的测试版。
- Rust 程序员将Slint crate与 Cargo 一起使用。
轻量级
使用 Slint 构建的图形应用程序可以在内存小于 300 kB 的系统上运行,例如带有 264kB 内部 RAM 和 ARM Cortex-M0+ 处理器的 Raspberry Pi Pico。这使得 Slint 非常适合为嵌入式设备开发应用程序的 UI。
声明式编程
Slint 开发团队在构建它时就考虑到了可扩展性、包容性、工具性和跨平台兼容性,因此 Slint 是完全跨平台,且使用声明式编程来简化 UI 的开发:
- UI 以声明性语言描述,使用的语法提供了一种广泛的方式来描述各种图形元素,同时易于阅读、编写和学习。
- Slint 编译器将 UI 描述优化并翻译成本地代码
- 可以使用任何语言编写的业务逻辑,然后使用 Slint 提供的特定于语言的 API 与其 UI 连接
以下 Slint 强制性的“Hello World”:
export component HelloWorld inherits Window {
width: 400px;
height: 400px;
Text {
y: parent.width / 2;
x: parent.x + 200px;
text: "Hello, world";
color: blue;
}
}
使用
为了加快 UI 开发过程,Slint 提供了代码完成、导航、重构和语法突出显示的工具支持。在开发和完善 UI 时,Slint 的实时预览会实时显示更改以提供即时反馈。
Visual Studio Code,则可以直接从 VS Code 市场安装 Slint 扩展。它适用于 macOS、Linux 和 Windows 的 VS Code,以及 Web 的 VS Code。要通过语言服务器协议集成到其他 IDE,请参阅 README 中的说明。
还可以使用 SlintPad 在 Web 浏览器中试用 Slint (SlintPad 是一个具有实时预览功能的在线编辑器)。
评论