文件结构
Slint 源文件
Section titled “Slint 源文件”.slint 源文件是零个或多个顶层项的序列,仅由空白和注释分隔。 {#sls.file.source-file}
仅包含空白和注释的源文件格式良好,并且不定义任何组件。 {#sls.file.source-file.empty}
顶层项是组件定义、import 语句、export 语句、 结构体或枚举声明或全局声明。
组件定义具有以下两种形式之一: {#sls.file.component.definition-forms}
component Name { /* component body */ }component Name inherits Base { /* component body */ }component 关键字后面的标识符是组件的名字。 {#sls.file.component.name}
第一种形式定义一个没有显式基类的组件;
第二种形式定义一个从 Base 命名的元素类型继承的组件。 {#sls.file.component.inherits}
继承的组件会扩展其基类:
组件的实例是 Base 类型的元素。 {#sls.file.component.inherits.meaning}
组件体的绑定应用于该元素, 而在组件体中实例化的元素会成为该元素的子元素。 {#sls.file.component.inherits.body-applies}
除了其主体中声明的那些属性外,该组件还具有 Base 的属性,
组件体中的绑定可以绑定它们。 {#sls.file.component.inherits.properties}
标识符 Base 应解析为内置元素、文件中先前定义的组件或导入的组件。 {#sls.file.component.inherits.base}
花括号 { 和 } 界定组件体。 {#sls.file.component.body-braces}
组件体是零个或多个元素实例化、绑定和属性声明的序列,仅由空白和注释分隔。 {#sls.file.component.body}
不包含任何元素实例化的组件体格式良好。 {#sls.file.component.body.empty}
元素实例化具有以下形式: {#sls.file.element.instantiation-form}
TypeName { /* element body */ }标识符 TypeName 应解析为内置或用户定义的组件。 {#sls.file.element.instantiation-typename}
实例化前可以带有一个 id 和 :=,例如 foo := Rectangle { },
在组件内命名该元素,
以便引用能够访问其属性。 {#sls.file.element.id}
export component Example inherits Window { frame := Rectangle { background: #2a6e3f; width: 120px; } Rectangle { background: #1a4f2c; width: frame.width; }}id 是一个标识符, 因此当两个 id 的 规范化形式相等时,它们是同一个 id。 {#sls.file.element.id.identifier}
id 在组件内应唯一。 {#sls.file.element.id.unique}
唯一性规则涵盖整个组件,包括for 和 if 子树内的元素。名字 self、parent 和 root 是保留的,不得用作 id。 {#sls.file.element.id.reserved}
将 Window 或继承 Window 的组件作为元素实例化已废弃:
它不会创建单独的窗口。
花括号界定元素体。 元素体是零个或多个嵌套元素实例化和绑定的序列,仅由空白和注释分隔。 {#sls.file.element.body}
嵌套的元素实例化是它所在元素体对应元素实例化的子元素。 子元素关系构成一棵树,其根为直接出现在组件体中的元素。 {#sls.file.element.tree}
下面是一个完整、格式良好的 .slint 源文件: {#sls.file.example.intro}
export component Hello inherits Window { Rectangle { } Rectangle { }}它导出一个组件 Hello,该组件继承自 Window,其主体包含两个顶层 Rectangle 实例化。 {#sls.file.example.description}
© 2026 SixtyFPS GmbH