Item 是 QML 中最基础的视觉元素,作为所有可视组件的基类,它提供了基本的属性和功能,但不具有可视化表现(没有颜色、边框等)。
核心属性
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
x |
real | 0 | X 坐标位置 |
y |
real | 0 | Y 坐标位置 |
width |
real | 0 | 宽度 |
height |
real | 0 | 高度 |
z |
real | 0 | Z 轴顺序(堆叠顺序) |
opacity |
real | 1.0 | 透明度(0.0-1.0) |
visible |
bool | true | 是否可见 |
enabled |
bool | true | 是否接受用户输入 |
clip |
bool | false | 是否裁剪子项超出部分 |
布局相关属性
属性 | 类型 | 描述 |
---|---|---|
anchors |
AnchorLine | 锚定系统 |
baselineOffset |
real | 基线偏移 |
transform |
list<Transform> | 变换列表 |
transformOrigin |
enumeration | 变换原点 |
常用信号
信号 | 描述 |
---|---|
onXChanged |
X 坐标改变时触发 |
onYChanged |
Y 坐标改变时触发 |
onWidthChanged |
宽度改变时触发 |
onHeightChanged |
高度改变时触发 |
onChildrenChanged |
子项变化时触发 |
基本用法
qml
import QtQuick 2.15
Item {
id: rootItem
width: 400
height: 300
// 作为容器使用
Item {
x: 50
y: 50
width: 200
height: 200
Rectangle {
width: 100
height: 100
color: "red"
}
}
// 不可见的交互区域
Item {
width: 50
height: 50
x: 300
y: 200
MouseArea {
anchors.fill: parent
onClicked: console.log("点击了不可见区域")
}
}
}
作为组件基类
qml
// MyComponent.qml
Item {
property alias color: rect.color
property string text
width: 150
height: 50
Rectangle {
id: rect
anchors.fill: parent
color: "lightblue"
}
Text {
text: parent.text
anchors.centerIn: parent
}
}
// 使用自定义组件
MyComponent {
text: "自定义项"
color: "salmon"
}