Skip to content

Slint Viewer

slint-viewer 命令行工具用于打开并预览 .slint 文件。 使用它可以实时重载地迭代 UI、渲染截图,或检查文件是否能编译。

使用 Rust 工具链从 crates.io 安装该二进制文件:

Terminal window
cargo install slint-viewer
bash

或者,下载适用于 Linux 或 Windows 的预构建二进制文件:

  1. 转到 最新的 Slint 版本。
  2. 从 “Assets” 下载适用于 Linux 的 slint-viewer-linux.tar.gz 或适用于 Windows 的 slint-viewer-windows-x86_64.zip。
  3. 解压该压缩包并运行 slint-viewer。

在类 Debian 系统上,使用以下命令安装运行时依赖:

Terminal window
sudo apt install -y libx11-xcb1 libxcb1 libxkbcommon0 libinput10 libgbm1
bash

Slint Viewer 应用也可在 Google Play 上供 Android 使用,并在 App Store 上供 iOS、iPadOS 和 macOS 使用:1

在 Google Play 上获取在 App Store 下载

这些应用以远程模式运行:请参阅远程查看器了解如何将它们连接到编辑器中的实时预览。

传入路径即可预览 .slint 文件:

Terminal window
slint-viewer path/to/myfile.slint
bash

使用 - 代替路径可从标准输入读取。

添加 --auto-reload 可监视磁盘上的文件,并在其更改时重新加载预览,这样你就可以无需重启查看器即可迭代:

Terminal window
slint-viewer --auto-reload path/to/myfile.slint
bash

--screenshot 将组件渲染为图像并退出,不显示窗口:

Terminal window
slint-viewer --screenshot screenshot.png path/to/myfile.slint
bash

图像格式由文件扩展名决定(如 .png 或 .jpg)。 使用 - 将 PNG 写入标准输出。 设置 SLINT_SCALE_FACTOR 环境变量可覆盖默认缩放系数 1。

--check 编译文件、打印任何诊断信息,然后退出而不打开窗口。 出错时退出状态为 1,否则为 0;警告仍会打印。

Terminal window
slint-viewer --check path/to/myfile.slint
bash

--save-data 在查看器退出时将组件的公共属性写入 JSON 文件:

Terminal window
slint-viewer --save-data output.json path/to/myfile.slint
bash

--load-data 在启动时从 JSON 文件设置这些属性:

Terminal window
slint-viewer --load-data input.json path/to/myfile.slint
bash

两者各自独立工作;同时传入可加载初始值并将结果写回。只有类型可序列化为 JSON 的属性才会被读取或写入,并且 --save-data 与 --auto-reload 不兼容。

对于具有以下属性的组件:

export component Form inherits Window {
in-out property <string> name;
in-out property <int> age;
}
slint

JSON 文件如下所示:

{
"name": "Alice",
"age": 30
}
json

--remote 以远程模式启动查看器。 查看器不加载文件,而是等待编辑器中的实时预览通过网络连接并将 UI 推送给它。 使用它可以在你于电脑上编辑时,在另一台机器或设备上预览 .slint 文件。

Terminal window
slint-viewer --remote
bash

查看器会显示一个空闲屏幕,其中包含其名称和要连接的地址,并在局域网上广播自身,以便编辑器可以发现它。 默认情况下,它监听所有网络接口上自动分配的端口。 传入 --remote-address <address> 可选择特定的地址和端口。

要连接,请在编辑器中打开 .slint 文件的实时预览,然后在预览右上角的组合框中选择 Remote,并输入查看器显示的地址。 随后查看器会显示一个四位数的代码;将其输入编辑器以确认连接。 每次查看器运行只询问一次,因此之后重新连接不会打扰你。 编辑器编译 .slint 文件并将结果发送到远程查看器,随着你编辑而重新加载它,同时被预览 UI 的调试输出会发送回编辑器。

--remote 不接受文件路径,也不能与 --screenshot 或 --check 组合使用。

运行 slint-viewer --help 可获取权威且始终最新的列表。常用选项:

选项 描述
<path> 要加载的 .slint 文件。除非给出 --remote,否则为必填项。
--auto-reload 监视文件系统并在文件更改时重新加载。
--load-data <file> 从 JSON 文件加载公共属性的值。
--save-data <file> 退出时将公共属性的值写入 JSON 文件。与 --auto-reload 不兼容。
--screenshot <file> 将组件渲染为图像并退出。
--check 编译文件、打印诊断信息,然后退出而不打开窗口。与上述选项不兼容。
--remote 以远程模式启动并等待编辑器连接。参见远程查看器。
--remote-address <address> 远程模式下要监听的地址和端口。默认为所有接口上自动分配的端口。
--pairing-code <code> 始终要求此四位数配对代码,而不是显示生成的代码,适用于没有可用显示器的设备。
--no-pairing 接受任何连接,无需配对或加密。仅适用于你控制的网络;编辑器在每次连接到此类查看器之前都会发出警告。
--component <name> 加载具有此名称的组件。默认为最后一个导出的组件。
--style <style> 设置控件样式。默认为 fluent。
--backend <backend> 覆盖 Slint 渲染后端。
-I <path> 为导入的 .slint 文件或图像添加包含路径。
-L <library=path> 为 @library 导入添加库路径。
--on <callback> <handler> 在调用回调时运行 shell 命令。参见回调处理器。

使用 - 代替文件路径可从标准输入读取或写入标准输出。

使用 gettext 特性构建的查看器还接受 --translation-domain <domain>、--translation-dir <dir> 和 --no-default-translation-context,以便根据 gettext 目录解析 @tr(...) 字符串。

--on 在调用回调时运行 shell 命令,后跟回调名称和命令。 在命令中,$1、$2、…… 会被回调参数替换(经过 shell 转义)。

给定一个带有 open-url 回调的 .slint 文件:

export component MyApp inherits Window {
callback open-url(string);
// ...
}
slint

将该回调连接到命令:

Terminal window
slint-viewer --on open-url 'xdg-open $1' myfile.slint
bash

使用单引号,或转义 $,这样 shell 就不会展开 $1。

当根元素是 Dialog 时,如果按钮上未设置回调,标准按钮会关闭它:

  • ok、yes 和 close 接受对话框。
  • cancel 和 no 拒绝对话框。
代码 含义
0 窗口被关闭,或对话框通过 Ok、Close 或 Yes 被接受。
1 对话框通过 Cancel、No 或窗口的关闭按钮被拒绝。在 --check 或 --screenshot 下也代表编译错误。
2 命令行参数解析或验证失败。
-1 编译失败(--check 或 --screenshot 下除外)。

slint-viewer 可以从 shell 脚本显示 GUI。 使用 - 从标准输入读取 .slint,并在退出时使用 --save-data - 将属性值以 JSON 写回,这样脚本就可以从对话框收集用户输入。

有关完整演示,请参见博文 Showing GUIs from shell scripts。 可直接运行的示例位于 examples/bash 文件夹中。

  1. Google Play 和 Google Play 标志是 Google LLC 的商标。Apple 和 Apple 标志是 Apple Inc. 在美国及其他国家和地区注册的商标。App Store 是 Apple Inc. 的服务标志。 ↩


© 2026 SixtyFPS GmbH