添加自定义属性
每个预设组件都有一组预设属性,您可以为这些属性指定值。 您可以为特定组件类型添加原本不存在的自定义属性。通过将属性绑定到动态表达式,可以为组件定义全局属性,供其他组件读取。例如,您可以为根组件指定全局属性,并在子组件中使用这些属性。
例如,要指定 UI 元素之间的间距,您可以为一个没有 margin 属性的组件定义一个 margin,然后使用绑定从其他组件引用该 margin 属性的值。
同样,您还可以为基于预设组件的自定义组件添加自定义属性。
任何数据驱动的内容都应作为相关组件的公共属性(别名属性)导出。例如,速度表应具有一个用于表示速度的int或real属性,UI 与该属性绑定。

为组件添加属性
要为组件添加自定义属性:
- 访问Properties >Local Custom Properties 。
- 选择“
”(Add )。
- 为该属性设置“Name ”和“Type ”。

“添加新属性”对话框。
- 选择“Add Property ”以添加该属性。
绑定属性值
若要将该属性的值绑定到另一个属性的值或应用程序中可访问的数据:
- 在“Properties ”视图中,选择该属性旁边的“
”。 - 选择“Set Binding ”。

将显示“绑定编辑器”对话框。
有关详细信息,请参阅“设置绑定”。
在“连接”视图中添加自定义属性
要在“Connections ”视图中为某个组件添加自定义属性:
- 在“2D ”或“Navigator ”视图中选择一个组件。
- 转到“Connections ”>“Properties ”。

- 选择“
”(Add )以添加自定义属性。 - 在自定义属性编辑器中,选择要包含的属性的Type 。

自定义属性编辑器。
- 为该属性设置Name 和Value 。
删除自定义属性
转到“Connections ”>“Properties ”,然后选择“
”(Remove )以删除所选的自定义属性。
支持的属性类型
下表描述了支持的属性类型:
| 类型 | 描述 |
|---|---|
| 别名 | 指向另一个属性的别名 |
| bool | 二进制true 或false 值 |
| color | 颜色值,可通过 SVG 颜色名称(如"red" 、"green" 或"lightsteelblue" )指定,也可分别采用"#RRGGBB" 和"#AARRGGBB" 形式的十六进制三元组或四元组指定。 例如,红色对应三元组"#FF0000" ,而略带透明的蓝色则对应四元组"#800000FF" 。此外,您还可以使用以下 Qt XML 函数:Qt.rgba()、Qt.hsva()、Qt.hsla()、Qt.darker()、Qt.lighter() 以及Qt.tint()。 |
| int | 整数,例如 0、10 或 -20 |
| real | 带有小数点的数字 |
| 字符串 | 自由格式的文本字符串 |
| TextureInput | 指定一个向 CustomMaterial 或 Effect 的着色器公开的纹理。 |
| url | 资源定位符,例如文件名。可以是绝对路径(https://qt-project.org ),也可以是相对路径(pics/logo.png )。相对 URL 会相对于父组件的 URL 进行解析。 |
| 变体 | 通用属性类型。例如,变体属性可以存储数字、字符串、对象、数组和函数。 |
| vector2d | 指具有 x 和 y 属性的值。 |
| vector3d | 指具有 x、y 和 z 属性的值。 |
| vector4d | 指具有 x、y、z 和 w 属性的值。 |
另请参阅 《操作指南:使用 UI 组件》、《Qt Quick UI 设计》以及《设计Qt Quick UI》。
Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.