Python 如何从其他类访问screen manager?(基维)
我相信这将是另一个简单的方法,但我不确定如何从python代码中的不同屏幕中访问我的屏幕管理器。我可以让它在kv文件中使用root.manager.current='screen'进行切换,但这在python中显然不起作用 my.kv:Python 如何从其他类访问screen manager?(基维),python,kivy,Python,Kivy,我相信这将是另一个简单的方法,但我不确定如何从python代码中的不同屏幕中访问我的屏幕管理器。我可以让它在kv文件中使用root.manager.current='screen'进行切换,但这在python中显然不起作用 my.kv: ... <Screen3> GridLayout: Button: text:"submit" on_press: root.submit() 。。。 网格
...
<Screen3>
GridLayout:
Button:
text:"submit"
on_press: root.submit()
。。。
网格布局:
按钮:
案文:“提交”
按:root.submit()
main.py
from kivy import yadayada
kv_str = """
<Screen1>
canvas:
Rectangle:
pos: self.pos
size: self.size
<Screen2>
canvas:
Rectangle:
pos: self.pos
size: self.size
<Screen3>
canvas:
Rectangle:
pos: self.pos
size: self.size
"""
Builder.load_string(kv_str)
class Screen1(Screen):
pass
class Screen2(Screen):
pass
class Screen3(Screen):
def submit(self):
#trying to switch screens here
class MyApp(App):
def build(self):
sm = ScreenManager()
sm.add_widget(Screen1(name='screen1'))
sm.add_widget(Screen2(name='screen2'))
sm.add_widget(Screen3(name='screen3'))
return sm
if __name__ == '__main__':
MyApp().run()
来自kivy import yadayada的
kv_str=”“”
画布:
矩形:
pos:self.pos
大小:self.size
画布:
矩形:
pos:self.pos
大小:self.size
画布:
矩形:
pos:self.pos
大小:self.size
"""
建筑商。荷载串(kv_str)
类别屏幕1(屏幕):
通过
第2类屏幕(屏幕):
通过
第3类屏幕(屏幕):
def提交(自我):
#试图在这里切换屏幕
类别MyApp(应用程序):
def生成(自):
sm=屏幕管理器()
sm.add_小部件(Screen1(name='Screen1'))
sm.add_小部件(Screen2(name='Screen2'))
sm.add_小部件(Screen3(name='Screen3'))
返回sm
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
MyApp().run()
在您的submit()
方法中,您可以使用:
self.manager.current = `screen1`