现在,我已经在另一个没有问题的项目中使用了ScreenManager。但是令人惊讶的是,相同的设置在任何其他项目中均不起作用。简直无法弄清楚为什么我的屏幕只能切换到新屏幕(以前没有显示过),而不能切换到以前的任何屏幕。我正在发布一个简单的代码来显示这种现象。请告知我我严重失踪的内容。谢谢。
import kivy
kivy.require('1.11.0')
import os
os.environ['KIVY_GL_BACKEND'] = 'gl'
from kivy.app import App
from kivy.uix.popup import Popup
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.screenmanager import Screen, ScreenManager, FadeTransition
from kivy.clock import Clock
class MainScreen(Screen):
def setName(self,*args):
FirstPopup().open()
class SecondScreen(Screen):
pass
class FirstPopup(Popup):
pass
class MyScreenManager(ScreenManager):
pass
class SmTestApp(App):
def build(self):
sm = MyScreenManager()
sm = ScreenManager(transition=FadeTransition())
sm.add_widget(MainScreen(name="main_scr"))
sm.add_widget(SecondScreen(name="second_scr"))
return sm
SmTestApp().run()
#: kivy 1.11.0
<MainScreen>:
name: 'main_scr'
BoxLayout:
orientation: 'vertical'
padding: 100,100
spacing: 50
Label:
text: 'Welcome to Main Screen'
font_size: 35
Button:
text: 'Options'
font_size: 15
on_release: root.setName(*args)
Button:
text: 'Next Screen'
font_size: 15
on_release: app.root.current = 'second_scr'
<SecondScreen>:
name: 'second_scr'
BoxLayout:
orientation:'vertical'
padding:100,100
spacing:50
Label:
text: 'This is your second screen'
font_size: 35
Button:
text: 'Back'
font_size: 25
on_release: app.root.current = 'main_scr'
<FirstPopup>:
title: 'Options Window'
size_hint: None, None
size: 400,370
BoxLayout:
orientation : 'vertical'
Label:
text : "Checkbox options listed here"
Button:
text: "OK"
on_release: root.dismiss()
答案 0 :(得分:0)
好的。这是我所发现的。我删除了FadeTransition效果,一切恢复正常。我检查了所有其他可用的过渡方法,发现在8,4过渡样式中,导致程序退出。导致此错误的影响是淡入淡出,擦除,掉落和上升。
如果这是由于其他一些参数设置错误引起的,我不知道。如果任何人都可以给出解释,那很好。如果没有,则如何确定原因。谢谢@约翰·安德森。