Я использую kivy
для создания базового c меню.
В результате получается довольно простое меню. Все идет нормально.
Проблема
Когда я нажимаю кнопку настроек, я хочу, чтобы приложение очистило экран и выполнило SettingsMenu
, что Предполагается создать кнопку, которая должна позволить мне go вернуться в главное меню. Однако нажатие кнопки настроек только очищает экран и не добавляет никаких новых кнопок.
Как я могу go взад и вперед между этими меню? Кроме того, какова правильная терминология для использования здесь - Как нарисовать новые виджеты на моем root виджете?
Файл python:
import kivy
from kivy.app import App
from kivy.uix.stacklayout import StackLayout
from kivy.uix.anchorlayout import AnchorLayout
from kivy.uix.widget import Widget
class StartMenu(AnchorLayout):
def go_to_settings(self):
self.clear_widgets()
return SettingsMenu()
class SettingsMenu(AnchorLayout):
def go_to_main_menu(self):
self.clear_widgets()
return StartMenu()
class SpaceGameApp(App):
def build(self):
return StartMenu()
if __name__ == '__main__':
SpaceGameApp().run()
И .kv
файл:
#:kivy 1.11.1
<StartMenu>:
AnchorLayout:
anchor_x: 'center'
anchor_y: 'center'
size_hint: (0.3,0.5)
StackLayout:
spacing:10
Button:
size_hint: (1,0.2)
text: "start"
Button:
size_hint: (1,0.2)
text: "settings"
on_release: root.go_to_settings()
<SettingsMenu>:
AnchorLayout:
anchor_x:'center'
anchor_y:'center'
size_hint: (0.3, 0.5)
StackLayout:
spacing:10
Button:
size_hint: (1,0.2)
text: "back"
on_release: root.go_to_main_menu()