在QML的设计中,似乎没有真正“设想”用户reparent,因为即使有可能,它也会涉及创建和更改状态,这不方便添加到每个项目中。

 import QtQuick 1.0

 Item {
     width: 200; height: 100

     Rectangle {
         id: redRect
         width: 100; height: 100
         color: "red"
     }

     Rectangle {
         id: blueRect
         x: redRect.width
         width: 50; height: 50
         color: "blue"

         states: State {
             name: "reparented"
             ParentChange { target: blueRect; parent: redRect; x: 10; y: 10 }
         }

         MouseArea { anchors.fill: parent; onClicked: blueRect.state = "reparented" }
     }
 }

我想知道是否有一种更优雅的方法来重载项目而不污染具有不必要状态的项目?

最佳答案

不确定是否需要使用QtQuick 1.0,但对于2.0也可以使用,而且imo更简单。

导入QtQuick 2.0

物品 {
宽度:200;高度:100
Rectangle { id: redRect width: 100; height: 100 color: "red" } Rectangle { id: blueRect x: redRect.width width: 50; height: 50 color: "blue" MouseArea { anchors.fill: parent; onClicked: { blueRect.parent = redRect; blueRect.x = 10; blueRect.y = 10 } } }}

关于qt - 在QML中重新显示视觉项目的更好方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24109184/

10-09 08:21