簡體   English   中英

Kivy,ScreenManager在切換到上一個屏幕時沒有屏幕

[英]Kivy, ScreenManager says no screen while switching to previous screen

現在我已經在一個不同的項目中使用ScreenManager,它沒有任何問題。 但令人驚訝的是,同樣的設置在任何其他項目中都無效。 簡直無法弄清楚為什么我的屏幕只能切換到新屏幕(以前沒有顯示)而不能切換到任何以前的屏幕。 我發布了一個簡單的代碼來顯示這種現象。 請告訴我我真正想念的是什么。 謝謝。

screenmanager_test.py

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()

smtest.kv

#: 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()


好。 這是我發現的。 我刪除了FadeTransition效果,事情恢復正常。 我檢查了所有其他可用的轉換方法,發現8,4過渡樣式導致程序退出。 導致此錯誤的效果是Fade,Wipe,FallOut和RiseIn。

如果這是由於其他一些錯誤設置的參數引起的,我不知道。 如果有人可以給出解釋,那就沒關系了。 如果不是如何確定原因。 謝謝@John Anderson。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM