根据Kivy docs。 "切换按钮也可以分组以制作单选按钮 - 组中只有一个按钮可以处于“关闭”状态。"
是否可以使用togglebutton设置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()
答案 0 :(得分: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()