【问题标题】:kivy menu bar with screen manager and new menu on separate screens带有屏幕管理器的 kivy 菜单栏和单独屏幕上的新菜单
【发布时间】:2021-06-15 01:54:45
【问题描述】:

此答案显示了如何制作在屏幕之间切换的菜单。 Kivy with Menubar

但是现在我在第二个屏幕上,我需要在那个屏幕上放两个按钮

一个确定和一个取消按钮。

“确定”会将您带到显示信息已处理的屏幕,

取消让我回到每个示例的屏幕。

我尝试过添加第二个屏幕管理器,但它不喜欢那样。这是如何处理的?

<Display>:
    BoxLayout:
        orientation: "vertical"

        BoxLayout:
            size_hint: 1, None
            height: '48dp'
            Button:
                text: 'One'
                on_release: 
                    sm.current = 'screen_one'  #<<<<<<<<<<<<<<<<
                    sm.transition.direction = "left"
            Button:
                text: 'Two'
                on_release: 
                    sm.current = 'screen_two'  #<<<<<<<<<<<<<<<<
                    sm.transition.direction = "right"
            Button:
                text: 'Three'
                on_release: 
                    sm.current = 'screen_three'  #<<<<<<<<<<<<<<<<
                    sm.transition.direction = "right"

        ScreenManager:
            id: sm
            Screen_One:
            Screen_Two:
            Screen_Three:

<Screen_One>:
    name: 'screen_one'      #<<<<<<<<<<<<<<<<
    Button:
        text: 'One'
    


<Screen_Two>:
    name: 'screen_two'      #<<<<<<<<<<<<<<<<
    BoxLayout:
        size_hint: 1, None
        height: '48dp'

        Button:
            text: 'Cancel'
            on_release: 
                sm1.current = 'screen_one'  #<<<<<<<<<<<<<<<<
                sm1.transition.direction = "left"

        Button:
            text: 'Ok'
            on_release: 
                sm1.current = 'screen_three'  #<<<<<<<<<<<<<<<<
                sm1.transition.direction = "right"

    ScreenManager:
        id: sm1
        Screen_One:
        Screen_Two:
        Screen_Three:
            
    

<Screen_Three>:
    name: 'screen_three'      #<<<<<<<<<<<<<<<<
    Button:
        text: 'Three'



        
            


    
        



        
            



    
        

【问题讨论】:

    标签: kivy


    【解决方案1】:

    Screen 的每个实例都有一个manager 属性,它是对管理它的ScreenManager 的引用。因此,在您的kv 中,您可以将sm1 替换为root.manager,如下所示:

                root.manager.current = 'screen_three'  #<<<<<<<<<<<<<<<<
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-26
      相关资源
      最近更新 更多