Python Kivy 无法从另一个类访问 id
Posted
技术标签:
【中文标题】Python Kivy 无法从另一个类访问 id【英文标题】:Python Kivy can't access id from another class 【发布时间】:2021-09-30 16:34:06 【问题描述】:我无法通过 id 从另一个类获取小部件。我试过app.root.ids.first_lbl.text
,但没用。有没有办法做到这一点?
这是我的代码:
main.py:
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.boxlayout import BoxLayout
class MainWidget(Widget):
pass
class SecondWidget(BoxLayout):
pass
class MyApp(App):
def build(self):
return MainWidget()
if __name__ == "__main__":
MyApp().run()
my.kv:
<MainWidget>
BoxLayout:
size: root.width, root.height
BoxLayout:
Label:
id: first_lbl
text: "TEXT123"
SecondWidget:
<SecondWidget>:
Label:
text: app.root.ids.first_lbl.text
【问题讨论】:
【参考方案1】:这是一个可行的技巧:
<MainWidget>
BoxLayout:
size: root.width, root.height
BoxLayout:
Label:
id: first_lbl
text: "TEXT123"
SecondWidget:
t1: first_lbl.text # set the t1 property of SecondWidget to the text of first_lbl
<SecondWidget>:
t1: ''
Label:
text: root.t1 # use the t1 property of SecondWidget
【讨论】:
以上是关于Python Kivy 无法从另一个类访问 id的主要内容,如果未能解决你的问题,请参考以下文章