Python Kivy:如何从kvlang中的任何屏幕中访问嵌套的screenmanager
当您想在kvlang中更改根screenmanager时,可以在任何屏幕中执行以下操作:Python Kivy:如何从kvlang中的任何屏幕中访问嵌套的screenmanager,python,kivy,Python,Kivy,当您想在kvlang中更改根screenmanager时,可以在任何屏幕中执行以下操作: Button: text: 'press me to change the screen of the root manager' on_press: app.root.current = 'name_of_target_screen' 或者,如果此按钮位于屏幕管理器管理的屏幕上,则可以执行以下操作: Button: text: 'press me to change the cu
Button:
text: 'press me to change the screen of the root manager'
on_press: app.root.current = 'name_of_target_screen'
或者,如果此按钮位于屏幕管理器管理的屏幕上,则可以执行以下操作:
Button:
text: 'press me to change the current screen'
on_press: root.manager.current = 'name_of_target_screen'
但是,如果您有这样的嵌套屏幕管理器:
[Root screen manager]
[screen 1]
[screen 2]
[BoxLayout]
[sidescreen]
[button to change nested screen manager]
[nested screen manager]
[nested screen 1]
[nested screen 2]
我不知道如何从[sidescreen]中更改嵌套屏幕管理器,因为我不知道如何引用它。
有人知道吗
一个简单的工作示例:
将
中的嵌套屏幕管理器id
设置为某个值,如id:nested\u screenmanager
,然后将其传递给按钮,如按上的:nested\u screenmanager.current='SecondNested'
。ids
列表对规则中的所有小部件都可见。太好了,我知道它很简单。我完全被名称/id/classname的混乱搞糊涂了。我的第一个错误是:不知道确切地使用哪个。我的第二个错误是:在
中定义它们,而不是
。我的第三个错误是,试图设置root.nested\u screenmanager.current
,而不是像您建议的那样设置nested\u screenmanager.current
。谢谢