【发布时间】:2017-02-26 11:17:14
【问题描述】:
如果图片太大,请见谅
好的。所以here's my complete code。它是中等大小的,因此仅供参考 - 不需要理解代码。
因此,如果我想在 Python 中访问 Layout 中的 Button()、Label() 或 TextInput() 对象,我只需执行 self.ids.object_name.property_of_object。
但是,假设我有一个 ScreenManager(),该 ScreenManager() 中有一个 Screen(),该屏幕对象中有一个自定义布局 MyCustomLayout()。就我能够得到的结果而言——我无法从 Screen() 的 Python 代码中的 MyCustomLayout() 中获取 id。
即假设在 MyCustomLayout() 中有一个按钮的 id,my_button。我想更改文本。
如果我在 MyCustomLayout() 类下,这将起作用:
self.ids.my_button.text = 'My new text!'
但是假设我在 MyScreen() 中,其中包含 MyCustomLayout()。我没能得到:
self.ids.my_button.text doesn't work
self.ids.my_custom_layout.my_button.text doesn't work
事实上,self.ids 返回 {}。由于某种原因,它甚至没有填充 ObservableDict。
但是,无论如何。我想我要说的是这个。如果我想访问自定义小部件的孩子:
- 在屏幕对象内
- 在 Python 中
- 在 MyScreen() 类下
我该怎么做?
谢谢!
加分:告诉我你是怎么知道这件事的!
【问题讨论】: