Как получить доступ к атрибуту виджета из другого виджета в Kivy?

Хорошо, скажем, я хочу, чтобы эта метка в каком-то виджете использовала текст из метки внутри другого виджета:

<SubWidget@RelativeLayout>:
    Label:
        text: str(root.parent.ids.first.text)

<RootWidget>:
    Label:
        id: first
        center_x: 100
        text: "text"

    SubWidget:
        id: second
        center_x: 200

Это работает, но не кажется хорошим решением. Если я размещуfirst внутри другого виджета мне нужно будет изменить ссылку на него везде в коде (что может привести к ошибкам).

Моей первой идеей было хотя бы сохранить ссылку наfirst на корневом уровне и ссылка на него:

<,code><SubWidget@RelativeLayout>:
    Label:
        text: str(root.parent.l.text)


<RootWidget>:
    l: first

    Label:
        id: first
        center_x: 100
        text: "text"

    SubWidget:
        id: second
        center_x: 200

Но это приводит к исключению:

AttributeError: 'NoneType' object has no attribute 'text'

Это сбивает с толку, так как если я напишу что-то вродеtext: str(root.parent.l) я увижуLabel object скорее, чемNoneType.

Итак, у меня есть два вопроса:

Почему не работает второе решение? Как это можно исправить?В общем, как лучше всего получить доступ к атрибуту виджета из другого виджета? Могу ли я сделать это независимым от иерархии виджетов?

Ответы на вопрос(1)

Ваш ответ на вопрос