QML 基本可视元素之Item 六
Item
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 )处的子项目。