表达式
表达式产生一个值。
字面量是最简单的形式:诸如 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; }}数字可以是小数,例如 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 文件所在目录解析的路径。 {#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; }}属性引用指向某个属性。
它是一个属性名,可选地前面带有一个元素引用和一个 .。 {#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