首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >参考屏幕管理器

参考屏幕管理器
EN

Stack Overflow用户
提问于 2015-08-30 16:16:24
回答 1查看 123关注 0票数 0

是否可以在python中使用屏幕对象来引用屏幕管理器?基本上,我想从python中更改屏幕。

在猕猴桃里,这很简单:

代码语言:javascript
运行
复制
app.root.current='ScreenName'

我不想在这里创建一个新的屏幕管理器对象。

我这样做是因为在kivy语言中,我使用了以下代码:

代码语言:javascript
运行
复制
on_release: root.select_experiment();app.root.current= 'StartExperiment'

root.select_experiment()称其为流行。我希望只有在弹出弹出被取消后,StartExperiment屏幕才会发生转换。从基维开始就发生过。编辑:

代码语言:javascript
运行
复制
 Traceback (most recent call last):
   File "C:\Users\sony\Desktop\test\main.py", line 171, in <module>
     AppBaseClass().run()
   File "C:\Anaconda\lib\site-packages\kivy\app.py", line 824, in run
     runTouchApp()
   File "C:\Anaconda\lib\site-packages\kivy\base.py", line 487, in runTouchApp
     EventLoop.window.mainloop()
   File "C:\Anaconda\lib\site-packages\kivy\core\window\window_sdl2.py", line 525, in mainloop
     self._mainloop()
   File "C:\Anaconda\lib\site-packages\kivy\core\window\window_sdl2.py", line 290, in _mainloop
     EventLoop.idle()
   File "C:\Anaconda\lib\site-packages\kivy\base.py", line 330, in idle
     self.dispatch_input()
   File "C:\Anaconda\lib\site-packages\kivy\base.py", line 315, in dispatch_input
     post_dispatch_input(*pop(0))
   File "C:\Anaconda\lib\site-packages\kivy\base.py", line 281, in post_dispatch_input
     wid.dispatch('on_touch_up', me)
   File "kivy\_event.pyx", line 699, in kivy._event.EventDispatcher.dispatch (kivy\_event.c:7011)
   File "C:\Anaconda\lib\site-packages\kivy\uix\behaviors.py", line 163, in on_touch_up
     self.dispatch('on_release')
   File "kivy\_event.pyx", line 695, in kivy._event.EventDispatcher.dispatch (kivy\_event.c:6970)
   File "kivy\_event.pyx", line 1168, in kivy._event.EventObservers.dispatch (kivy\_event.c:12154)
   File "kivy\_event.pyx", line 1092, in kivy._event.EventObservers._dispatch (kivy\_event.c:11729)
   File "C:\Users\sony\Desktop\test\main.py", line 84, in file_button_clicked
     self.parent.ids.MyScreenManager.current = 'StartExperiment'
   File "kivy\properties.pyx", line 720, in kivy.properties.ObservableDict.__getattr__ (kivy\properties.c:10911)
 AttributeError: 'super' object has no attribute '__getattr__'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-30 20:15:17

我相信最简单的方法是用kivy语言给屏幕管理器一个ID,然后引用ID表单Python。

基维档案

代码语言:javascript
运行
复制
ScreenManager:
    id: MyScreenManager

Python

代码语言:javascript
运行
复制
self.parent.current = 'Target_Screen'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32298626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档