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 )处的子项目。

 

posted @ 2016-06-24 17:04  Dkma像疯子一样战斗  阅读(6375)  评论(0编辑  收藏  举报