According to the Kivy docs. "Toggle buttons can also be grouped to make radio buttons - only one button in a group can be in a ‘down’ state."
Is it possible to have 1 button using a togglebutton and change screens back and forth using the screen manager?
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()
You can use the on_state
method for this.
Try this:
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()