欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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}

Qt 5.12学习笔记--Item详解

Rectangle{
z:1
color:"red"
width:100;height:100}
 
Rectangle{
color:"blue"
x:50;y:50
width:100;height:100}

Qt 5.12学习笔记--Item详解

5 定位子项目和坐标映射

Item提供childAt(real x, real y)函数返回在点(x,y )处的子项目。

参考

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

相关标签: Qt quick