Python KivyMD доступ к виджетам внутри вкладок

#python #kivy #kivymd

Вопрос:

Короче говоря, вот мой код для моего проекта, упрощенный:

test.py

 from kivymd.uix.floatlayout import MDFloatLayout
from kivymd.app import MDApp
from kivymd.uix.tab import MDTabsBase


class Tabs(MDFloatLayout, MDTabsBase):
    pass

class Test(MDApp):
    pass

Test().run()
 

тест.кв

 MDFloatLayout:
    MDTabs:
        id: tabs

        Tabs:
            id: one
            title: 'one'

            MDLabel: #example widget that i want to access to like PLEASE
                id: label
                text: ';-;'
                halign: 'center'
                valign: 'center'

        Tabs:
            id: two
            title: 'two'

            MDRectangleFlatButton: #also this dabhfdvsfdgbjdkfmg
                id: button
                text: 'end my misery'
                pos_hint: {'center_x': 0.5, 'center_y': 0.5}
 

В основном проблема здесь в том, что я не могу понять, как получить доступ к label виджетам и button виджетам внутри отдельных вкладок. Есть какое-нибудь решение?

Ответ №1:

вы можете получить доступ к любому идентификатору в корневом виджете из класса приложения, например self.root.ids.label , вы можете сделать это в методе сборки

 from kivymd.uix.floatlayout import MDFloatLayout
from kivymd.app import MDApp
from kivymd.uix.tab import MDTabsBase


class Tabs(MDFloatLayout, MDTabsBase):
    pass


class Test(MDApp):
    def build(self):
        # here you will get the text of the label using id
        print(self.root.ids.label.text)


Test().run()