![](/img/trans.png)
[英]kivy 'NoneType' object has no attribute 'get_screen'? How do I access values from different screens?
[英]How do I access screen manager from a different class? (Kivy)
我相信这将是另一个简单的,但我不确定如何从 python 代码的不同屏幕中访问我的屏幕管理器。 我可以让它在 kv 文件中使用 root.manager.current = 'screen' 进行切换,但这显然在 python 中不起作用。
我的.kv:
...
<Screen3>
GridLayout:
Button:
text:"submit"
on_press: root.submit()
主文件
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()
在您的submit()
方法中,您可以使用:
self.manager.current = `screen1`
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.