gpt4 book ai didi

qml - 如何将属性动态添加到 QML 元素?

转载 作者:行者123 更新时间:2023-12-04 13:52:42 27 4
gpt4 key购买 nike

我想将属性动态添加到 QML 元素:

Item {
id: dynamicProperty;
property int first;


Component.onCompleted: {
/* once this block of code is executed, i want to add
property int second; property bool third; property variant fourth;
*/
}

}

有什么办法可以完成上述任务。

最佳答案

一方面:我不明白为什么有人要这样做,因为它完全是非声明性的。然而,由于 QML 扩展了 JavaScript,而后者是一种原型(prototype)语言,是的,你可以 做。

关于操作方法,我建议阅读 how to define properties 上的 JS 文档.但是我写了一个简短的例子来演示它的使用。

MouseArea {
anchors.fill: parent
onClicked: console.log(rect.newProp)
}

Rectangle {
id: rect
width: 50
height: 50
x: 50
y: 50
color: 'green'

MouseArea {
anchors.fill: parent
onClicked: { var obj = Object.defineProperty(rect, 'newProp',
{
enumerable: false,
configurable: false,
writable: false,
value: '50'
})}
}
}

第一次单击背景时,将打印“未定义”。单击矩形后,它将变为“50”。

关于qml - 如何将属性动态添加到 QML 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12564289/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com