QML-Bindung an ein Array-Element

8

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 :

basiert

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?

    
johnbakers 25.10.2013, 07:05
quelle

1 Antwort

12

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 ...

    
TheBootroo 29.10.2013, 08:59
quelle

Tags und Links