【问题标题】:How to change screen transition in different screens如何在不同的屏幕中更改屏幕过渡
【发布时间】:2016-06-09 04:24:43
【问题描述】:

我有两个屏幕。当我按下“下一个屏幕”按钮时,它将转到第二个屏幕,并且过渡应该是 SlideTransition(左),当我按下“返回”按钮时,它应该返回到第一个屏幕,并且过渡应该是 SlideTransition(右)。

怎么做?它只在我的代码中使用了 1 个转换

这是我的代码 py/kv 代码:

class 1stScreen(Screen):
    ...some methods...

class 2ndScreen(Screen):
    ...some methods...

class MyScreenManager(ScreenManager):
    pass

root_widget = Builder.load_string('''
#:import SlideTransition kivy.uix.screenmanager.SlideTransition

MyScreenManager:
    transition: SlideTransition(direction='left')
    1stScreen:

    transition: SlideTransition(direction='right') #<-- Im getting error with this
    2ndScreen:

<1stScreen>:
     name: '1stScreen'
     ...some widgets...
     Button:
         text: 'next screen'
         on_release: app.root.current = '2ndScreen'

<2ndScreen>:
     name: '2ndScreen'
     ...some widgets...
     Button:
         text: 'back'
         on_release: app.root.current = '1stScreen'
''')

class Main(App):
    def build(self):
        return root_widget

if __name__ == "__main__":
    Main().run()

【问题讨论】:

    标签: python kivy


    【解决方案1】:

    将转换放入on_release 事件中。

    Button:
        text: 'next screen'
        on_release:
            app.root.transition = SlideTransition(direction='right')
            app.root.current = '2ndScreen'
    ...
    

    【讨论】:

      【解决方案2】:

      对于其他来这里寻找使用完全不同的过渡从一个屏幕到另一个屏幕的答案的人来说,这对我有用:

      1. 在 KV 文件的顶部加载所需的转换,如下所示(包括哈希):
      #: import FadeTransition kivy.uix.screenmanager.FadeTransition
      #: import SlideTransition kivy.uix.screenmanager.SlideTransition
      
      1. 玩转这种格式,将过渡类型更改为所需的类型:
      app.root.transition = FadeTransition(duration=1.2)
      

      保持它与您的触发事件相关联。我试过了

      on_release
      

      我的登录和注销按钮,但发现它有问题,不完全是我想要的行为。我最终为

      添加了一行
      on_press
      

      为了在没有意外行为的情况下创建所需的过渡。我将更改屏幕的实际行保留在

      on_release
      

      行。

      【讨论】:

        猜你喜欢
        • 2021-08-18
        • 2019-05-07
        • 2022-01-25
        • 2018-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-27
        • 2015-04-06
        相关资源
        最近更新 更多