#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()