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

参考

1、QML 基本可视元素之Item 六

发布了496 篇原创文章 · 获赞 601 · 访问量 155万+

猜你喜欢

转载自blog.csdn.net/qq_38880380/article/details/103836767