Доступ к выбранным во время выполнения ролям модели в QML

{QML/Qt-5.2, Win7}

Обычный способ доступа к ролям — использование model.roleName.

    ListModel {
    id: mod
    ListElement { role0: "hello"; role1: "aaa" }
    ListElement { role0: "helloThere"; role1: "bbb" }
    }


//.....
Repeater {
model: mod
delegate: Text {//....
text: model.role0
}
}

Если мне нужно, чтобы у меня было редактирование строки, где я мог бы ввести роль, которая будет рассматриваться во время выполнения, то описанный выше способ доступа к ролям во время выполнения не работает. Но это похоже на эквивалент

Text {//...
text: model["role0"] //is this legal (it works btw) instead of model.role0 ?
}

Теперь это в основном строка, поэтому я могу динамически вводить роль, и отображение будет меняться в соответствии с указанной ролью. Но это нигде не задокументировано, просто наткнулся на это. Вопрос в том, является ли этот (второй способ) стандартным способом? В противном случае, как я могу указать роль во время выполнения?


person ustulation    schedule 13.02.2014    source источник


Ответы (1)


Выражение, которое вы пишете, находится в javascript, а в javascript model.foo и model["foo"] функционально эквивалентны. Не забывайте, что у вас есть сила javascript :)

person Kuba hasn't forgotten Monica    schedule 13.02.2014