字体处理
Text 和 TextInput 等元素可以渲染文本,并允许通过各种属性自定义文本的外观。
以 font- 为前缀的属性,例如 font-family、font-size 和 font-weight,
会影响渲染到屏幕时所使用的字体选择。如果这些属性中有任何一个未指定,则会应用
外层 Window 元素中的 default-font- 值,例如 default-font-family。
用于渲染的字体自动取自运行应用的系统。你也可以在设计中使用自定义字体。
自定义字体必须是 TrueType 字体(.ttf)、TrueType 字体集合(.ttc)或 OpenType 字体(.otf)。
你可以在 .slint 文件中使用 import 语句选择自定义字体:import "./my_custom_font.ttf"。这会
指示 Slint 编译器包含该字体,并使这些字体族全局可用,供 font-family 属性使用。
例如:
import "./NotoSans-Regular.ttf";
export component Example inherits Window { default-font-family: "Noto Sans";
Text { text: "Hello World"; }}嵌入式和裸机目标上的字体
Section titled “嵌入式和裸机目标上的字体”用于渲染的字体自动取自运行应用的操作系统。在使用软件渲染器且没有操作系统的 嵌入式或裸机目标上,没有可用的系统字体。在这些目标上,你必须通过像上面那样导入, 嵌入应用使用的每一种字体。
字体嵌入(以及其字形预渲染)通过编译器的资源嵌入设置来启用:
- Rust: 在你的构建脚本中,将
EmbedResourcesKind::EmbedForSoftwareRenderer传递给CompilerConfiguration::embed_resources()。 - C++: 将
SLINT_EMBED_RESOURCESCMake 目标属性(或DEFAULT_SLINT_EMBED_RESOURCES缓存变量)设置为embed-for-software-renderer。
在为软件渲染器嵌入字形时,编译器会按你的 .slint 文件使用的像素尺寸预先渲染它们。
如果某些字体大小只有在运行时才能确定,请在编译时把 SLINT_FONT_SIZES 环境变量设置为
以逗号分隔的像素尺寸列表(例如 SLINT_FONT_SIZES=12,16,24),这样字形也会按这些尺寸
预先渲染。
为了在闪存有限的系统上减小二进制文件体积,字形可以嵌入为 有符号距离场(SDF),而不是 预渲染的位图,以牺牲一些渲染质量为代价换取更小的占用。可通过以下方式启用:
CompilerConfiguration::with_sdf_fonts()
(Rust,需要 sdf-fonts Cargo feature),或者将 SLINT_EMBED_RESOURCES 设置为
embed-for-software-renderer-with-sdf(C++,需要 SLINT_FEATURE_SDF_FONTS
feature)。
在确实有操作系统的目标上,启用 software-renderer-systemfonts cargo
feature,让软件渲染器也能使用系统上安装的字体。
© 2026 SixtyFPS GmbH