Javascript 使用qml添加具有条件的类

Javascript 使用qml添加具有条件的类,javascript,c++,qt,qml,Javascript,C++,Qt,Qml,我有一个项,我想在其中添加一个类,这个类依赖于一个变量 import "class1" import "class2" Item { id: myID property variant myVar: 0; anchors.fill: parent; function update() { switch(myID.myVar) { case 0: class1 { anchors.fill: par

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

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;
    }
  }
}

这就是帮助!如何调用类(class1或class2)中的函数。我已经在类中添加了一个ID,但是当我调用该函数时,我得到一个错误:TypeError:表达式'ClassID.functionName'的结果[undefined]不是一个函数。我添加了一个新问题: