手机软件做的相册怎样传到网站,营销网站型建设多少钱,毕设DW做网站的过程,wordpress动漫模板Qml-Item的Id生效范围
前置声明
本实例在Qt6.5版本中做的验证同一个qml文件中#xff0c;id是唯一的#xff0c;即不同有两个相同id 的Item;当前qml文件中声明的id在当前文件中有效#xff08;即如果其它组件中传入的id#xff0c;与当前qml文件中id 相同#xff0c;当前…Qml-Item的Id生效范围
前置声明
本实例在Qt6.5版本中做的验证同一个qml文件中id是唯一的即不同有两个相同id 的Item;当前qml文件中声明的id在当前文件中有效即如果其它组件中传入的id与当前qml文件中id 相同当前qml文件中id生效在父级qml文件中声明的id可以传递给子集的qml文件中使用实例由4个qml文件组成主qml ItemIdScopeTest.qml: 由3个子qml组件元素子qml1(ItemIdGDataPro.qml)定义了一个纯属性的Item,另两个子qmlItemIdComponent_1.qmlItemIdComponent_2.qml中由一个Rectangle元素组成
Item Id生效范围 实例代码
ItemIdGDataPro.qml文件,定义了id名称和两个color属性 代码如下:
import QtQuick
//由于测试Item中id 作用范围和影响
Item{id:idGDataProproperty color reColor1: blueproperty color reColor2: greenonReColor1Changed: {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中属性值。