Qt 5.12学习笔记--Item详解
程序员文章站
2022-07-12 15:35:04
...
QML中的所有可视项目都继承自Item。虽然Item本身没有可视化的外观,但是它定了以可视化项目的所有属性,例如L位置,大小,布局anchors相关属性和关于按键处理的keys属性等。Item拥有一个visibel属性,将其社这位false可以隐藏项目,该属性默认值为true。
1 作为容器
Item常用来对项目进行分组,或者创建组件
Item
{
Image{source:“tile.png”}
Image{x:29;y:34
width:123; height:234
source:"tile.png"}
Image{x:190
width:345 ; height:456
source:"tile.png"
fillMode:Image.Tile
}
}
2 默认属性
Item中有个children属性和resource属性。前者包含了可见的孩子的列表,后者包含了不可见的资源。例如:
Item{
children:[
Text{},
Image{},
Rectangle{}
]
resources:[
Timer{}
]
}
Item中还有个data默认属性,它允许在有个项目中将可见的孩子和不可见的资源*混合。也就是说,如果向data列表中添加一个可视项目,那么将作为一个孩子进项添加;而如果添加任何其他的对象类型,那么将被作为资源进项添加。又因为data是默认属性,所有可以省略data标签。前面的额带面可以改写为:
Item{
Text{}
Image{}
Rectangle{}//前面三个作为children可见
Timer{}//作为资源类型不可见
}
也就是说,编程中可以直接向一个项目中添加任何的元素。
3 透明度
Item有一个opacity(不透明)属性,可以用来设置透明度。该属性可以设置为0-1.0(完全不透明)之间。opacity可以继承。
4 堆叠顺序
Item中的z属性表明兄弟之间的堆叠顺序。默认z=0,z值越大,绘制越在上面。相同z值由上到下依次绘制。z为负值,会被绘制在父项目的下面。
Rectangle{
color:"red"
width:100;height:100}
Rectangle{
color:"blue"
x:50;y:50
width:100;height:100}
Rectangle{
z:1
color:"red"
width:100;height:100}
Rectangle{
color:"blue"
x:50;y:50
width:100;height:100}
5 定位子项目和坐标映射
Item提供childAt(real x, real y)函数返回在点(x,y )处的子项目。
参考
下一篇: Object 对象的属性和方法