Как обновить поле значения ListElement (QML) динамически обновляемым свойством - PullRequest
1 голос
/ 30 января 2020

В приведенном ниже коде свойство __operatingModus_season обновляется каждые 30 секунд. Но во внешнем интерфейсе я не вижу никакой ценности или изменений. Пожалуйста, поднимите голову, если я ошибаюсь.

ListModel{
    id: tileListModelBetriebsmodus
    Component.onCompleted: {
        if(__is_automatik_mode_ON){
            tileListModelBetriebsmodus.append({"tileListSource": "../../images/HausScreen/operatingModeAuto.png",
                                                  "tileListText": getFrontendText("AUTO"),
                                                  "tileListValue": __operatingModus_season
                                              })
        }else{
            tileListModelBetriebsmodus.append({"tileListSource": "../../images/HausScreen/hamburgerfinger.png",
                                                  "tileListText": getFrontendText("MANUAL"),
                                                  "tileListValue": __operatingModus_season
                                              })
        }
    }
}

1 Ответ

0 голосов
/ 30 января 2020

Этот способ добавления элементов в ListModel не делает их динамичными c, значения сохраняются на месте.

Возможно, вы сможете Создать привязки свойств как this:

ListModel{
    id: tileListModelBetriebsmodus
    Component.onCompleted: {
            if(__is_automatik_mode_ON){
                tileListModelBetriebsmodus.append({"tileListSource": "../../images/HausScreen/operatingModeAuto.png",
                                                      "tileListText": getFrontendText("AUTO"),
                                                      "tileListValue": Qt.binding(function() { return __operatingModus_season })
                                                  })
            }else{
                tileListModelBetriebsmodus.append({"tileListSource": "../../images/HausScreen/hamburgerfinger.png",
                                                      "tileListText": getFrontendText("MANUAL"),
                                                      "tileListValue": Qt.binding(function() { return __operatingModus_season }
                                                  })
            }
        }
    }

Примечание. Я не проверял это, если бы вы добавили минимальный рабочий пример, который я мог бы сделать.

...