当前位置: 首页 > news >正文

Qml-Item的Id生效范围

Qml-Item的Id生效范围

前置声明

  1. 本实例在Qt6.5版本中做的验证
  2. 同一个qml文件中,id是唯一的,即不同有两个相同id 的Item;当前qml文件中声明的id在当前文件中有效(即如果其它组件中传入的id,与当前qml文件中id 相同,当前qml文件中id生效)
  3. 在父级qml文件中声明的id,可以传递给子集的qml文件中使用
  4. 实例由4个qml文件组成:主qml ( ItemIdScopeTest.qml): 由3个子qml组件元素;子qml1(ItemIdGDataPro.qml)定义了一个纯属性的Item,另两个子qml(ItemIdComponent_1.qml,ItemIdComponent_2.qml)中由一个Rectangle元素组成

Item Id生效范围 实例代码

  1. ItemIdGDataPro.qml文件,定义了id名称和两个color属性, 代码如下:
import QtQuick
//由于测试Item中id 作用范围和影响
Item{id:idGDataProproperty color reColor1: "blue"property color reColor2: "green"onReColor1Changed: {console.log("reColor___1   Changed");}onReColor2Changed: {console.log("reColor___2   Changed");}}

2.ItemIdComponent_1.qml 文件内容如下

	import QtQuick
//用于测试Item中id 作用范围和影响
Item{ItemIdGDataPro{id:idGDataProproperty color reColor1: "blue"}Rectangle{id:idComp1width: 100height: 100color: idGDataPro.reColor1}
}

3.ItemIdComponent_2.qml 文件内容如下

import QtQuick//由于测试Item中id 作用范围和影响
Item{Rectangle{id:idComp2width: 100height: 100//Comp2 中 idGDataPro.reColor2color: idGDataPro.reColor2}
}

3.ItemIdScopeTest.qml 文件,使用其它3个 子qml 元素,内容如下

import QtQuick//由于测试Item中id 作用范围和影响。
//1.在同一个qml中不能有Item 有相同的id;
//1.在qml文件中,定义的id 优先级最高
//2.在父qml文件中,设置其它Item的id,包含在父qml文件中其它组件所在qml中可以使用此id的属性Item{height: 480width: 320Rectangle{anchors.fill: parentItemIdGDataPro{id:idGDataPro}ItemIdComponent_1{id:idComp1x:20y:20}ItemIdComponent_2{id:idComp2x:150y:20}}
}

结果:
1.ItemIdScopeTest.qml 文件中定义的Id,可以在ItemIdComponent_2.qml中使用;
2.ItemIdComponent_1.qml 中定义了相同Id名称的“ idGDataPro”,在ItemIdComponent_1.qml文件中就使用了自身定义的“idGDataPro”;
3.实验验证方式:可以通过添加onXXXChanged() 函数(XXX代表定义的属性),来验证是哪个对应属性发生了改变

Item Id生效范围效果

1.可验证:
a.主qml中不定义ItemIdGDataPro 对象,,在子qml组件中使用ItemIdGDataPro 的属性效果。
b.主qml中定义ItemIdGDataPro 对象,,在某个子qml组件中定义主qml同样属性Id的对象,修改主qml中ItemIdGDataPro 对象属性值,查看是否影响子qml中属性值。
在这里插入图片描述

http://www.lryc.cn/news/464904.html

相关文章:

  • 【配色网站分享】
  • 【记录】Android|安卓平板 猫游戏(四款,peppy cat,含下载教程和链接)
  • 微前端架构及其解决方案对比
  • git add操作,文件数量太多卡咋办呢,
  • 搭建Golang gRPC环境:protoc、protoc-gen-go 和 protoc-gen-go-grpc 工具安装教程
  • Spring Boot 核心理解-自动装配
  • go 中指针的执行效率比较
  • 单链表的经典算法OJ
  • 视频网站开发:Spring Boot框架的高效实现
  • 【前端】如何制作一个自己的网站(11)
  • 【Conda】提高 Conda 下载速度与兼容性的完美指南
  • 【Flutter】页面布局:层叠布局(Stack、Positioned)
  • SpringBoot实现的汽车票在线预订系统
  • 集合框架14:TreeSet概述、TreeSet使用、Comparator接口及举例
  • uniapp获取底部导航tabbar的高度(H5)
  • 接口测试 —— 如何测试加密接口?
  • 033 商品搜索
  • 身份证二要素实名认证接口-身份证核验接口-身份证实名API
  • 一次恶意程序分析
  • Javaweb基础-vue
  • 2. MySQL数据库基础
  • java集合进阶篇-《泛型》
  • pytorh学习笔记——cifar10(三)模仿VGGNet创建卷积网络
  • 题目:连续子序列
  • 深入解析:Nacos AP 模式的实现原理与应用场景
  • snmpnetstat使用说明
  • linux线程 | 同步与互斥 | 互斥(下)
  • 2024-10-17 问AI: [AI面试题] 讨论 AI 的挑战和局限性
  • go基础(一)
  • python忽略warnings 的方法