#python #widget #kivy
#python #виджет #kivy
Вопрос:
Я хочу удалить виджет, который я добавил динамически с помощью add_widget () в function1 не в файле kv, моя проблема в том, что я не могу присвоить виджету идентификатор для его удаления в function2, когда я попытался добавить идентификатор, идентификатор не отображался в свойстве ids корневого, и я не нахожу его у дочерних элементов корневого виджета с помощью инструмента отладки, как будто его не существует, хотя он отображается на моем экране. Я хочу знать, как я могу создать и добавить виджет и получить к нему доступ с помощью идентификатора.
self.root.get_screen('Third').add_widget(MDLabel(
# id='titlesolution',
text=f"Solutions",
theme_text_color="Hint",
halign='center',
pos_hint={'center_x': 0.5,'center_y': 0.42}))
Ответ №1:
идентификаторы — это особенность языка kv, при создании экземпляра из Python эквивалентного свойства id не существует. Причина этого в том, что идентификаторы были бы избыточными на стороне Python, поскольку у вас автоматически появляется ссылка на любой виджет, который вы создаете.
Если вы хотите присвоить виджету идентификатор, вы можете просто использовать любое имя свойства, которое вам нравится, и добавить его в класс.
Если вы хотите получить доступ к дочерним элементам виджета, попробуйте widget.children
просмотреть список напрямую.
идентификатор не отображался в свойстве ids корневого
На стороне Python нет четкого корня.