Slint Viewer
slint-viewer 命令行工具用于打开并预览 .slint 文件。
使用它可以实时重载地迭代 UI、渲染截图,或检查文件是否能编译。
使用 Rust 工具链从 crates.io 安装该二进制文件:
cargo install slint-viewer或者,下载适用于 Linux 或 Windows 的预构建二进制文件:
- 转到 最新的 Slint 版本。
- 从 “Assets” 下载适用于 Linux 的
slint-viewer-linux.tar.gz或适用于 Windows 的slint-viewer-windows-x86_64.zip。 - 解压该压缩包并运行
slint-viewer。
在类 Debian 系统上,使用以下命令安装运行时依赖:
sudo apt install -y libx11-xcb1 libxcb1 libxkbcommon0 libinput10 libgbm1Slint Viewer 应用也可在 Google Play 上供 Android 使用,并在 App Store 上供 iOS、iPadOS 和 macOS 使用:1
这些应用以远程模式运行:请参阅远程查看器了解如何将它们连接到编辑器中的实时预览。
传入路径即可预览 .slint 文件:
slint-viewer path/to/myfile.slint使用 - 代替路径可从标准输入读取。
添加 --auto-reload 可监视磁盘上的文件,并在其更改时重新加载预览,这样你就可以无需重启查看器即可迭代:
slint-viewer --auto-reload path/to/myfile.slint--screenshot 将组件渲染为图像并退出,不显示窗口:
slint-viewer --screenshot screenshot.png path/to/myfile.slint图像格式由文件扩展名决定(如 .png 或 .jpg)。
使用 - 将 PNG 写入标准输出。
设置 SLINT_SCALE_FACTOR 环境变量可覆盖默认缩放系数 1。
--check 编译文件、打印任何诊断信息,然后退出而不打开窗口。
出错时退出状态为 1,否则为 0;警告仍会打印。
slint-viewer --check path/to/myfile.slint加载和保存属性数据
Section titled “加载和保存属性数据”--save-data 在查看器退出时将组件的公共属性写入 JSON 文件:
slint-viewer --save-data output.json path/to/myfile.slint--load-data 在启动时从 JSON 文件设置这些属性:
slint-viewer --load-data input.json path/to/myfile.slint两者各自独立工作;同时传入可加载初始值并将结果写回。只有类型可序列化为 JSON 的属性才会被读取或写入,并且 --save-data 与 --auto-reload 不兼容。
对于具有以下属性的组件:
export component Form inherits Window { in-out property <string> name; in-out property <int> age;}JSON 文件如下所示:
{ "name": "Alice", "age": 30}--remote 以远程模式启动查看器。
查看器不加载文件,而是等待编辑器中的实时预览通过网络连接并将 UI 推送给它。
使用它可以在你于电脑上编辑时,在另一台机器或设备上预览 .slint 文件。
slint-viewer --remote查看器会显示一个空闲屏幕,其中包含其名称和要连接的地址,并在局域网上广播自身,以便编辑器可以发现它。
默认情况下,它监听所有网络接口上自动分配的端口。
传入 --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-viewer --on open-url 'xdg-open $1' myfile.slint使用单引号,或转义 $,这样 shell 就不会展开 $1。
当根元素是 Dialog 时,如果按钮上未设置回调,标准按钮会关闭它:
ok、yes和close接受对话框。cancel和no拒绝对话框。
| 代码 | 含义 |
|---|---|
0 |
窗口被关闭,或对话框通过 Ok、Close 或 Yes 被接受。 |
1 |
对话框通过 Cancel、No 或窗口的关闭按钮被拒绝。在 --check 或 --screenshot 下也代表编译错误。 |
2 |
命令行参数解析或验证失败。 |
-1 |
编译失败(--check 或 --screenshot 下除外)。 |
从 Shell 脚本驱动 UI
Section titled “从 Shell 脚本驱动 UI”slint-viewer 可以从 shell 脚本显示 GUI。
使用 - 从标准输入读取 .slint,并在退出时使用 --save-data - 将属性值以 JSON 写回,这样脚本就可以从对话框收集用户输入。
有关完整演示,请参见博文 Showing GUIs from shell scripts。 可直接运行的示例位于 examples/bash 文件夹中。
Footnotes
Section titled “Footnotes”-
Google Play 和 Google Play 标志是 Google LLC 的商标。Apple 和 Apple 标志是 Apple Inc. 在美国及其他国家和地区注册的商标。App Store 是 Apple Inc. 的服务标志。 ↩
© 2026 SixtyFPS GmbH
