我有一个项目,我想在其中添加一个类,这个类依赖于变量
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;
}
}
}
实际上这是一个错误的代码,无论如何都可以这样做?
谢谢。
答案 0 :(得分:1)
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;
}
}
}