Динамически установить свойство "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}
}
}
}
Но, насколько я знаю, это невозможно.