Mil*_*ils 2 javascript c++ qt qml
其实我有这个代码:
import "class1"
import "class2"
Item {
id: myItem
property variant myVar: 0;
anchors.fill: parent;
Component {
id: compClass1
class1 { id: class1ID
anchors.fill: myItem;
}
}
Component {
id: compClass2
class2 {
anchors.fill: myItem;
}
}
Loader { id: myLoader }
function update() {
switch(myID.myVar) {
case 0:
myLoader.sourceComponent = compClass1;
classID.myFunction();
break;
case 1:
myLoader.sourceComponent = compClass2;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
}
当我想调用一个函数时出现问题,我收到一个错误:TypeError:表达式'class1ID.myFunction'[undefined]的结果不是函数.
PS:类'class1'已经有一个名为'myFunction()'的函数
如果您想访问您的class1功能,您需要使用item您的属性Loader.这是一个显示这个的例子:
Rectangle {
id: myItem
width: 300
height: 300
color: "yellow"
Component {
id: compClass1
Rectangle {
id: class1ID
color: "blue"
width: myItem.width
height: myItem.height
function function1() {
console.log("I am in class1");
}
}
}
Component {
id: compClass2
Rectangle {
color: "red"
width: myItem.width
height: myItem.height
function function1() {
console.log("I am in class2");
}
}
}
Loader { id: myLoader }
MouseArea {
property int nbClicks: 0
anchors.fill: parent
onClicked: {
if(nbClicks % 2 == 0 ) {
myLoader.sourceComponent = compClass1;
} else {
myLoader.sourceComponent = compClass2;
}
myLoader.item.function1();
nbClicks++;
}
}
}
Run Code Online (Sandbox Code Playgroud)