QML Item

news2024/9/26 5:12:33

在QML中所有的可视项目都继承自Item,虽然Item本身没有可视化的外观,但它定义了可视化项目的所有属性。

Item可以作为容器使用:

Item{
        Rectangle{id:retc}
        Rectangle{id:retc1}
        Rectangle{id:retc2}
        Rectangle{id:retc3}
    }

item拥有children属性和resources

  • children可以获取可见的孩子列表
  • resources 包含了不可见的资源

children的使用:

如果只有一个元素的话,可以不用使用children

  • 使用children[   ]
  • 有多个使用,隔开
Item{
        children: [
            Text {id: t0;text: "text0"},
            Text {id: t1;text: "text1"},
            Text {id: t2;text: "text2"},
            Text {id: t3;text: "text3"},
            Text {id: t4;text: "text4"}
        ]
        Component.onCompleted: {
            console.log("index 0的内容为:",children[0].text)
            console.log("index 1的内容为:",children[1].text)
            console.log("index 2的内容为:",children[2].text)
            console.log("index 3的内容为:",children[3].text)
            console.log("index 4的内容为:",children[4].text)
        }
    }

 resources 的使用:

resources: [
            Timer{}
        ]

Item中还有一个data默认属性,允许在项目中将可见和不可见的资源自由混合,由于data是默认 属性,所以可以省略data标签。

Item{
        Text {id: t0;text: "text0"}
        Text {id: t1;text: "text1"}
        Text {id: t2;text: "text2"}
        Text {id: t3;text: "text3"}
        Text {id: t4;text: "text4"}
        Timer{}
        
        Component.onCompleted: {
            console.log("index 0的内容为:",children[0].text)
            console.log("index 1的内容为:",children[1].text)
            console.log("index 2的内容为:",children[2].text)
            console.log("index 3的内容为:",children[3].text)
            console.log("index 4的内容为:",children[4].text)
        }
    }

 opacity(透明度)

  • 0.0 全透明    
  • 1.0 完全不透明
 Item{
   Rectangle{
        width: 100
        height: 100
        color: "red"
        opacity: 0
    }
    Rectangle{
        x:110
        y:0
        width: 100
        height: 100
        color: "red"
        opacity: 0.2
    }
    Rectangle{
        x:220
        y:0
        width: 100
        height: 100
        color: "red"
        opacity: 0.5
    }
    Rectangle{
        x:330
        y:0
        width: 100
        height: 100
        color: "red"
        opacity: 1.0
    }
}

 堆叠顺序

Item拥有一个z属性,可以设置堆叠顺序,默认的堆叠顺序为0,z数值大的优先绘制。

如果都没设置的话,根据项目顺序(由上到下)绘制。

Item{
    Rectangle{
        width: 100
        height: 100
        color: "red"
    }
    Rectangle{
        width: 100
        height: 100
        color: "blue"
    }
}

Item{    
    Rectangle{
        z:1
        width: 100
        height: 100
        color: "red"
    }
    Rectangle{
        width: 100
        height: 100
        color: "blue"
    }
}

 定位子项目和坐标映射

  • Item中 提供childAt(real x,real y)函数来返回点(x,y)处的子项目,没有的话返回null。
  • mapFromItem(Item item,real x,real y):项目坐标系中的点 (x, y)映射到此项的坐标系,并返回与映射坐标匹配的点
  • mapToItem(Item item,real x,real y) :将该项目坐标系中的点(x、y)映射到项目的坐标系,并返回与映射坐标匹配的点。

transitions过渡)

使用transitions来存储项目的过渡列表

Item{
        id:item2
        transitions :[
            Transition {},
            Transition {},
            Transition {}
            
        ]
    }

states(状态)

使用states来保存该项的可能状态列表

Rectangle {
    id: root
    width: 100; height: 100

    states: [
        State {
            name: "red_color"//状态1
            PropertyChanges { target: root; color: "red" }
        },
        State {
            name: "blue_color"//状态2
            PropertyChanges { target: root; color: "blue" }
        }
    ]
}

常见的一些属性:

rotation旋转
smooth平滑处理(默认true)
scale缩放
parent父类
opacity透明
focus焦点
clip剪辑(默认false)
antialiasing抗齿状
layer.enabled是否分层

layer.enabled 是否分层

 非分层不透明度:

Item{
        opacity: 0.5
        width: 250
        height: 250
        Rectangle{id:rect1;width:100;height: 100;color:"red" ;border.width:1}
        Rectangle{id:rect2;width:100;height: 100;color: "blue";x:50;y:50;border.width:1}
    }

分层不透明度:

Item{
        opacity: 0.5
        layer.enabled: true
        width: 250
        height: 250
        Rectangle{id:rect1;width:100;height: 100;color:"red" ;border.width:1}
        Rectangle{id:rect2;width:100;height: 100;color: "blue";x:50;y:50;border.width:1}
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/376232.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MyBatis学习笔记(七) —— 特殊SQL的执行

7、特殊SQL的执行 7.1、模糊查询 模糊查询的三种方式: 方式1:select * from t_user where username like ‘%${mohu}%’ 方式2:select * from t_user where username like concat(‘%’,#{mohu},‘%’) 方式3:select * from t_u…

DolphinScheduler跨版本升级1.3.8至3.0.1

DolphinScheduler跨版本升级1.3.8至3.0.1Refer背景基础环境依赖版本升级修改pom.xml问题解决MYSQL升级1.文件替换2.修改表结构t_ds_process_definitiont_ds_alertt_ds_process_instance3.时间参数修改4.数据库升级DOLPHIN安装zookeeper集群创建用户dolphinscheduler_env.shinst…

指针变量作为函数参数详解,形参和实参之间的值传递如何传递?如何改变指针变量所指向的变量?

函数的参数不仅可以是整型,浮点型,字符型等数据,还可以是指针类型;它的作用是将一个变量的地址传送到另一个函数中。 关于地址,指针,指针变量可以参考我的上一篇文章: 地址,指针&…

线程的基本方法

线程等待:wait方法 调用wait方法的线程会进入WAITING状态,只有等到其他线程的通知或程序被中断才会返回。调用wait方法后会释放对象的锁,因此 wait方法一般被用于同步方法或同步代码块中 。 线程睡眠:sleep方法 调用sleep方法会导…

Spring Boot 版本升级2.2.11.RELEASE至2.7.4

2.2.11.RELEASE > 2.7.4项目更新spring-boot-starter-parent 主依赖,导致项目跑不起了日志也没有输出有用信息,自己查看源码调试启动入口打断点,一步步进入方法定位项目停止代码我的项目执行到SpringApplication.class 的152行代码会停止项…

华为HCIE学习之Openstack Glance组件(glance对接swift)

文章目录一、Glance的结构二、服务部署流程三、将glance存储在swift中1、默认使用swift来存储2、指定可以存在swift中3、swift版本4、keystone的endpoint地址(当glance去找swift时通过keystone去找)5、租户名:用户名,用户必须拥有admin角色6、…

【C语言】自定义类型:结构体、枚举、联合

目录 1.结构体 1.1结构体类型 1.2结构体的自引用 1.3结构体的初始化 1.4结构体内存对齐 //对齐 //offsetof //修改默认对齐数 1.5结构体传参 2.位段 2.1位段的内存开辟 2.2位段的内存分配 3.枚举 4.联合(共用体) //判断大小端 1.结构体…

【GO】k8s 管理系统项目23[前端部分–工作负载-Pod]

k8s 管理系统项目[前端部分–工作负载-Deployment] 1. 代码部分 1.1 准备工作 由于Pod页面和Deployment内容差不多.那么就直接把Deployment的内容复制过来.再做修改. 替换Deployment为Pod替换Deploy为Pod替换deployment为pod替换deploy为pod禁用新增的按钮,删除新增方法,表…

django后端服务、logstash和flink接入VictoriaMetrics指标监控

0.简介 通过指标监控可以设置对应的告警,快速发现问题,并通过相应的指标定位问题。 背景:使用的 VictoriaMetrics(简称 VM) 作为监控的解决方案,需要将 django 服务、logstash 和 flink 引擎接入进来,VM 可以实时的获…

SpringBoot:SpringBoot配置文件.properties、.yml 和 .ymal(2)

SpringBoot配置文件1. 配置文件格式1.1 application.properties配置文件1.2 application.yml配置文件1.3 application.yaml配置文件1.4 三种配置文件优先级和区别2. yaml格式2.1 语法规则2.2 yaml书写2.2.1 字面量:单个的、不可拆分的值2.2.2 数组:一组按…

操作系统权限提升(十八)之Linux提权-内核提权

Linux 内核提权 Linux 内核提权原理 内核提权是利用Linux内核的漏洞进行提权的,内核漏洞进行提权一般包括三个环节: 1、对目标系统进行信息收集,获取到系统内核信息及版本信息; 2、根据内核版本获取其对应的漏洞以及EXP 3、使…

第七届蓝桥杯省赛 C++ A/B组 - 四平方和

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📚专栏地址:蓝桥杯题解集合 📝原题地址:四平方和 📣专栏定位:为想参加蓝桥杯的小伙伴整理常考算法题解,祝大家…

Docker简介与用法

文章目录1、Docker简介1.1、Docker能解决什么问题1.2、什么是虚拟机技术1.2.1、虚拟机的缺点1.3、什么是容器1.3.1、容器与虚拟机比较1.4、分析 Docker 容器架构1.4.1、Docker客户端和服务器1.4.2、Docker 镜像(Image)1.4.3、Docker 容器(Container)1.4.4、Docker 仓库(reposit…

Windows程序员学习Linux环境内存管理

我是荔园微风,作为一名在IT界整整25年的老兵,今天我们来重新审视一下Windows程序员如何学习Linux环境内存管理。由于很多程序在Windows环境下开发好后,还要部署到Linux服务器上去,所以作为Windows程序员有必要学习Linux环境的内存…

【计算机三级网络技术】 第三篇 IP地址规划技术

IP地址规划技术 文章目录IP地址规划技术一、IP 地址规划以及划分地址新技术1.IP地址的标准分类(第一阶段)2.划分子网的三级地址结构(第二阶段)3.构成超网的无类域间路由技术(第三阶段)4.网络地址转换技术(第四阶段)二、IP 地址分类1.A类、B类与C类IP地址…

数据的表示和运算

文章目录数制与编码进制间的转换BCD码定点数与浮点数定点数是什么?浮点数是什么?定点数与浮点数的区别机器数和真值原码、反码、补码、移码基本定义整数的加减法刷题小结最后数制与编码 进制间的转换 二进制、八进制、十进制、十六进制之间的转换不用多…

前端杂学1

1.简单且必须掌握的 1.MVVM是什么 将MVC中的V变为了MVVM,实现了双向绑定。其中VM就是vue的作用,这样页面的动态化可以通过vue来操作,而不是页面直接与后端操作,实现了前后端的分离 2.为什么vue采用异步渲染 ? 调…

Kubernetes之服务发现

本文使用wordpressmysql搭建个人博客来讲解服务发现相关知识。 环境准备 wordpress需要连接到mysql才能正常工作,所以需要为mysql的pod创建一个mysql的svc,只要不删除重建svc,其IP不会变。 此时wordpress的pod需要连接mysql的svc的时候&…

HyperGBM用4记组合拳提升AutoML模型泛化能力

本文作者:杨健,九章云极 DataCanvas 主任架构师 如何有效提高模型的泛化能力,始终是机器学习领域的重要课题。经过大量的实践证明比较有效的方式包括: 利用Early Stopping防止过拟合通过正则化降低模型的复杂度使用更多的训练数…

第四阶段01-酷鲨商城项目准备

1. 关于csmall-product项目 这是“酷鲨商城”大项目中的“商品管理”项目,是一个后台管理项目(给管理员,或运营人员使用的项目,并不是普通用户使用的),并且,只会涉及与发布商品可能相关的功能开…