Динамически установить свойство "ID" метки

Я разрабатываю приложение для SailfishOS с использованием языка QML. Я хочу динамически установить id свойство метки с помощью if состояние.

Это мой код:

    Label {
        id: {
            if(myBool == false) {
                thisText()
            } else {
                notThatText()
            }
        }
        width: parent.width
        horizontalAlignment: Text.AlignRight
        text: ""
        font.pixelSize: Theme.fontSizeLarge
    }

Этот код помещен в мой CoverPage.qml файл, который отображает вещи на обложке приложения в фоновом режиме. При этом крышка просто черная, ничего не отображается.

Возможно ли это сделать в QML?

Заранее спасибо!

1 ответ

В Qt doc это сказано.

While it may look like an ordinary property, the id attribute is not an ordinary property attribute, and special semantics apply to it;

Вы не можете установить идентификатор компонента QML во время выполнения.(Поправьте меня, если я ошибаюсь). Вы можете найти objectName свойство полезно. Но я не понимаю, почему вы пытаетесь назначить динамический идентификатор.

У меня есть случай, когда использование динамического / конкретного идентификатора может быть полезным. Идентификатор может быть просмотрен с помощью Gammaray, это может помочь при отладке.

GridLayout {
  id: layout
  Repeater {
    model: foo
    Bar {
      id: bar_X_Y // bar_{model.row}_{model.column}
    }     
  }
}

Но, насколько я знаю, это невозможно.

Другие вопросы по тегам