Kivy:如何从kvlang的任何屏幕中访问嵌套的screenmanager

时间:2016-02-11 17:25:41

标签: python kivy

如果您想更改kvlang中的根屏幕管理器,您可以在任何屏幕中执行以下操作:

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]

我不知道如何从[sidecreen]中更改嵌套屏幕管理器,因为我不知道如何引用它。 有谁知道吗?

最小的工作示例: http://pastebin.com/1i5Ysbu3

1 个答案:

答案 0 :(得分:1)

id内的嵌套屏幕管理器<ScreenTwo>设置为某个值,例如id: nested_screenmanager,然后将其传递给按钮,例如on_press: nested_screenmanager.current = 'SecondNested'ids列表对规则中的所有小部件都可见。