【问题标题】:Kivy Toggle ButtonKivy 切换按钮
【发布时间】:2017-09-26 18:01:06
【问题描述】:

根据 Kivy docs。 “切换按钮也可以组合成单选按钮——组中只有一个按钮可以处于‘向下’状态。”

是否可以有 1 个按钮使用切换按钮并使用屏幕管理器来回切换屏幕?

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout

root = Builder.load_string('''

BoxLayout:
    orientation: 'vertical'

    BoxLayout:
        orientation: 'horizontal'
        size_hint: (1, .1)
        ToggleButton:
            text: "Settings"
            on_press: _screen_manager.current = 'settings'

    BoxLayout:
        orientation: 'vertical'

        ScreenManager:
            size_hint: 1, .8
            id: _screen_manager
            Screen:
                name: 'game'

            Screen:
                name: 'settings'

                BoxLayout:
                    orientation: 'vertical'
                    size_hint: (1, .1)
                    Button:
                        text: "Back"
                        on_press: _screen_manager.current = 'game'
                BoxLayout:
                    orientation: 'vertical'
 ''')


class MyApp(App):

    def build(self):
        return root

MyApp().run()

【问题讨论】:

    标签: kivy togglebutton


    【解决方案1】:

    您可以为此使用on_state 方法。
    试试这个:

    from kivy.app import App
    from kivy.lang import Builder
    
    
    root = Builder.load_string('''
    
    BoxLayout:
        orientation: 'vertical'
    
        BoxLayout:
            ToggleButton:
                text: "Settings"
                on_state: _screen_manager.current = 'settings' if self.state == 'down' else 'game'
    
        BoxLayout:
            orientation: 'vertical'
    
            ScreenManager:
                size_hint: 1, .8
                id: _screen_manager
                Screen:
                    name: 'game'
                    Label:
                        text: 'Game'
    
                Screen:
                    name: 'settings'
                    Label:
                        text: 'Settings' 
    
    ''')
    
    
    class MyApp(App):
    
        def build(self):
            return root
    
    MyApp().run()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-05
      • 1970-01-01
      • 1970-01-01
      • 2017-09-20
      • 1970-01-01
      • 2020-01-04
      相关资源
      最近更新 更多