Ich habe ein Flow-Layout, wo ich Elemente dynamisch auf Benutzeraktionen hinzufügen. Auf die gleiche Weise entferne ich diese Elemente bei Benutzeraktionen. Die Flow-QML-Komponente scheint wie erwartet zu funktionieren, bis ein Element entfernt wird. Das Objekt selbst wird entfernt, aber der Platz, den es belegt hat, ist leer. Meine Intuition sagt mir, dass das grafische Element selbst gelöscht wurde, aber die Ansicht wird nicht aktualisiert, wenn Elemente entfernt werden.Kann Flow QML-Komponente aktualisiert/aktualisiert werden, wenn das Element entfernt wurde?
Ist das dynamische Löschen von untergeordneten Elementen außerhalb des Bereichs der Flow-Komponente? Gibt es ein anderes Layout, das sich gleich verhält? GridLayout scheint am nächsten zu sein, aber untergeordnete Elemente werden nicht automatisch umbrochen, wenn die Größe des Layouts geändert wird.
Gibt es einen nicht-hack Weg, Flow zu ermöglichen, neu anzuordnen, wenn das untergeordnete Element deaktiviert ist? Wenn nicht, und wenn GridLayout mein bestes Bild ist, wie kann ich es so einrichten, dass es seine untergeordneten Elemente wie Flow umschließt?
Der folgende Code zeigt, was ich erreichen möchte:
Item {
id: root
Flow {
id: layout
anchors.fill: parent
Loader { id: loader }
}
MouseArea {
anchors.top: parent.top
height: parent.height/2
width: parent.width
onClicked: loader.source = "SomeQmlComponent.qml"
}
MouseArea {
anchors.bottom: parent.bottom
height: parent.height/2
width: parent.width
onClicked: loader.source = ""
}
}
Wie entfernen Sie das Element? Bitte geben Sie Ihren Code ein ... – folibis
@folibis: Ich verwende derzeit einen Loader und arbeite an seiner Source-Eigenschaft. Ich weiß, dass man eine Komponente, die mit einem Loader instanziiert wurde, nicht löschen sollte, aber ich glaube nicht, dass dies das Problem ist. – Phat