Skip to content

表达式

表达式产生一个值。 字面量是最简单的形式:诸如 42 或 3.14 的数字,诸如 100px 或 250ms 的带单位数字, 布尔值 true 或 false,带 \{ } 插值的字符串, 或颜色。 其他形式包括引用、运算符或条件表达式、 成员访问或索引、函数或回调调用、 数组或结构体字面量,以及诸如 @image-url 或 @tr 的宏。

括号用于对嵌套表达式进行分组。 {#sls.expr.grouping}

颜色字面量由 # 后跟 3、4、6 或 8 个十六进制数字组成: #rgb、#rgba、#rrggbb 或 #rrggbbaa。 这些数字不区分大小写。 任何其他位数的数字都是一个错误。 {#sls.expr.color.forms}

这些数字按顺序指定红、绿、蓝和 alpha 通道。 当省略 alpha 通道时,颜色完全不透明。 {#sls.expr.color.channels}

在 3 位和 4 位形式中,每个数字通过重复来指定一个通道: #18f 与 #1188ff 是同一种颜色。 {#sls.expr.color.short-forms}

颜色字面量求值为 color 类型的值。 {#sls.expr.color.type}

长度字面量由数字直接后跟一个单位组成,例如 120px。 {#sls.expr.length.form}

export component Example inherits Window {
Rectangle {
width: 120px;
height: 80px;
background: #2a6e3f;
}
}
slint

数字可以是小数,例如 10.5px。 长度单位包括 px、phx、cm、mm、in、pt 和 rem。

长度字面量求值为 length 类型的值。 {#sls.expr.length.type}

整数字面量是不带单位书写的整数,例如 42。 {#sls.expr.int.form}

整数字面量求值为 int 类型的值。 {#sls.expr.int.type}

图像字面量由 @image-url(、双引号中的字符串字面量, 以及 ) 组成。 {#sls.expr.image.form}

export component Example inherits Window {
in property <image> logo: @image-url("images/logo.png");
}
slint

该字符串是图像文件的路径:绝对路径,或相对于包含该字面量的 .slint 文件所在目录解析的路径。 {#sls.expr.image.path}

空字符串求值为无图像。 {#sls.expr.image.empty}

图像字面量求值为 image 类型的值。 {#sls.expr.image.type}

该路径也可以指向编译器包含路径上的文件,并且图像还可以从 data: URI 或 URL 加载;图像类型描述了这些形式以及 nine-slice 参数。

export component Example inherits Window {
in property <color> tint;
Rectangle {
background: root.tint;
width: self.height;
}
}
slint

属性引用指向某个属性。 它是一个属性名,可选地前面带有一个元素引用和一个 .。 {#sls.expr.ref.form}

元素引用对于外层元素是 self,对于其父元素是 parent, 对于组件的根元素是 root,或者是元素的 id。 {#sls.expr.ref.element}

预定义名字 true 和 false 是对 bool 类型两个值的引用。 {#sls.expr.bool}

不带元素引用的名字遵循查找规则。 {#sls.expr.ref.lookup}

该名字应指向被引用元素的一个属性。 {#sls.expr.ref.target}

读取时,属性引用求值为被引用属性的值, 并具有该属性的类型。 {#sls.expr.ref.value}

不带元素引用时,名字也可以解析为局部变量、回调或函数。

引用也可以命名枚举值或全局对象的属性。


© 2026 SixtyFPS GmbH