У вас есть иерархию в месте здесь и специфические областей. Вы не можете получить доступ к id
с, не подвергая их более высоким областям или, не пройдя через иерархию, но в правильно.
Давайте рассмотрим ваш TabView
: он имеет один Tab
элемент, который содержит Grid
(я предполагаю grid
элемент фактически Grid
!), Который в свою очередь содержит Button
вы хотите изменить. Если вы хотите получить доступ к нему из Button
b0
вы должны:
- Выберите вкладку в
tv
- Выберите содержащуюся
item
(через свойство с тем же именем) -> это Grid
- Выберите первый
item
из Grid
(который является единственным, нашим Button
)
Таким образом, в текущей настройке, правильный код, чтобы изменить года ур b1
текст из b0
обработчика clicked
сигнала, состоит в следующем:
tv.getTab(0).item.children[0].text = " XD "
Обратите внимание, что data[0]
может быть использован вместо children[0]
(см Item
элемент документы). Как вы можете видеть здесь, вы переходите к иерархии для доступа к элементу QML, который необходимо изменить.
Как вы видели, предыдущий код является утомительным и подверженным ошибкам. A намного лучше подход будет использовать функцию aliasing, а также Javascript для улучшения общего результата; другие пользователи уже любезно advised you об этом.
Похоже, что этот вопрос был поднят, потому что сглаживание тоже не работает. – ony