gpt4 book ai didi

javascript - 使用 qml 添加一个有条件的类

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:24:09 28 4
gpt4 key购买 nike

我有一个项目,我想在其中添加一个类,这个类依赖于一个变量

import "class1"
import "class2"

Item { id: myID
property variant myVar: 0;

anchors.fill: parent;

function update() {


switch(myID.myVar)
{
case 0:
class1 {
anchors.fill: parent;
}
break;

case 1:
class2 {
anchors.fill: parent;
}
break;
}
}

实际上这是一个错误的代码,有什么办法可以做到这一点?

谢谢。

最佳答案

QML 和 JavaScript 相互融合,但您尝试使用的是 JavaScript 上下文中的 QML 类实例化语法 - 它永远不会那样工作。加载 QML 文件后,其中定义的所有类实例都已实例化。

您需要定义两个组件,并使用加载器动态创建其中一个。所以,像下面这样的东西。我还没有测试过它,但我希望它能引导您朝着正确的方向前进。

import "class1"
import "class2"

Item {
id: myItem
property variant myVar: 0;
anchors.fill: parent;

Component {
id: compClass1
class1 {
anchors.fill: myItem;
}
}
Component {
id: compClass12
class2 {
anchors.fill: myItem;
}
}
Loader { id: myLoader }

function update() {
switch(myID.myVar) {
case 0:
myLoader.sourceComponent = compClass1;
break;
}
case 1:
myLoader.sourceComponent = compClass2;
break;
}
}
}

关于javascript - 使用 qml 添加一个有条件的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21765566/

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