【发布时间】:2021-09-20 16:30:07
【问题描述】:
我想制作一组自定义小部件,其中一些我想访问特定小部件的属性在add_widget(widget, index, canvas)method内。
问题是属性总是空的。这可能是因为我提前访问了它们,但我该如何解决呢?
我的代码:
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivymd.uix.label import MDLabel
from kivymd.app import MDApp
class CustomWidget(BoxLayout):
def add_widget(self, widget, index=0, canvas=None):
if isinstance(widget, MDLabel):
# Why is the text empty?
# Also how can I get the text value?
print("{}'s text is: {}".format(widget, widget.text))
else:
super(CustomWidget, self).add_widget(widget, index, canvas)
class MainApp(MDApp):
def __init__(self, **kwargs):
super(MainApp, self).__init__(**kwargs)
self.kv = Builder.load_string('''
#:kivy 2.0.0
CustomWidget:
MDLabel:
text: "Some text"
''')
def build(self):
return self.kv
if __name__ == '__main__':
MainApp().run()
【问题讨论】:
标签: python python-3.x kivy kivy-language kivymd