Ich habe eine Eigenschaft width
in einer QML Rectangle
, die auf einem anderen Rectangle mit der ID mainwindow
und einer der Array-Eigenschaften von mainwindow
:
width: mainwindow.width/mainwindow.numColsPerRow[positionRow]
Dies funktioniert zu dem Zeitpunkt, zu dem mein Rechteck eingerichtet ist; Das heißt, das Element innerhalb des Arrays numColsPerRow
ist korrekt beteiligt.
Wenn jedoch nach der Rectangle-Einstellung die Werte in numColsPerRow
geändert werden, hat die width
dieses Rectangle keine Auswirkung.
Erlaubt QML keine Eigenschaftsbindungen zu Array-Elementen?
Werte in einem var JS-Array geben kein Signal aus und ändern es nicht, wenn Sie Folgendes aufrufen:
%Vor%Um die Array-Eigenschaft jedem Code mitzuteilen, der sie verwendet, müssen Sie diesen Trick anwenden:
%Vor%Auf diese Weise gibt die QML-Engine das Signal aus, und andere Bindungen, die my_array verwenden, werden benachrichtigt und aktualisiert.
PS: Sie können dafür kein ListModel verwenden, da Sie keine Möglichkeit haben, ein bestimmtes Element im Modell mit einem Schlüssel wie Array oder Map do zu erhalten. Modelle sollen mit einer MVC-Ansicht verwendet werden ...