Лучший способ перерисовывать визуальные элементы в QML

Казалось бы, в дизайне 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" }
     }
 }

Мне было интересно, есть ли более элегантный способ переписывать предметы, не загрязняя предметы ненужными состояниями?

1 ответ

Не уверен, если вам нужно использовать QtQuick 1.0, но с 2.0 это также работает и, как мне кажется, более прямолинейно.

импорт 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 } } } }

Другие вопросы по тегам