Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 根据条件动态地将父项属性指定给QML组件_Qt_Qml_Qt Quick - Fatal编程技术网

Qt 根据条件动态地将父项属性指定给QML组件

Qt 根据条件动态地将父项属性指定给QML组件,qt,qml,qt-quick,Qt,Qml,Qt Quick,在基于条件创建QML组件时,如何动态地为父级赋予属性 例如: //FirstFile.qml SecondFile{ Rectangle { id: bodyRect } } //SecondFile.qml Rectangle{ id: rectangleId Flickable{ id: flickableId } } 在本例中,bodyRect的父项是rectangleId 如果条件为真,如何将flickableId归为bod

在基于条件创建QML组件时,如何动态地为父级赋予属性

例如:

//FirstFile.qml

SecondFile{

  Rectangle {
    id: bodyRect

  }    
}
//SecondFile.qml

Rectangle{
  id: rectangleId

  Flickable{
    id: flickableId

  }    
}
在本例中,
bodyRect
的父项是
rectangleId


如果条件为真,如何将
flickableId
归为
bodyRect
的父项?

好吧,这实际上取决于您实际想要实现什么,目前的问题完全不清楚这一点

如果使用动态对象实例化,只需将所需的父对象传递给函数:

someComponent.createObject(condition ? parent1 : parent2)
此外,还可以根据以下条件更改对象的可视父对象:

  property bool cond: false

  property Rectangle rect: Rectangle {
    Rectangle {
      parent: cond ? redrect : bluerect
      anchors.centerIn: parent
      width: 50
      height: 50
      color: "blue"
    }
  }

  MouseArea {
    anchors.fill: parent
    onClicked: cond = !cond
  }

  Row {
    Rectangle {
      id: redrect
      width: 200
      height: 200
      color: "red"
    }
    Rectangle {
      id: bluerect
      width: 200
      height: 200
      color: "green"
    }
  }
随着
cond
的更改,蓝色矩形将动态重新租入红色或绿色矩形


请记住,除非对象恰好表示在对象树中具有可见性的实际实例,否则您无法跨不同的文件执行操作。

谢谢您的回答,这正是我想要的。