我正在尝试制作一个主菜单,让我在单击按钮时切换屏幕,但我不知道如何从按钮中引用管理器。
我有一个主菜单页面的设置(在 kv 文件中):
<MainMenu>: #AnchorLayout
BoxLayout:
Button:
text: "button 1"
Button:
text: "change screen"
on_release: root.manager.current = "OtherPage"
<MainWidget>:
screen_manger: screen_manager
ScreenManger:
id: screen_manger
Screen:
name: "MainMenu"
MainMenu
Screen:
name: "OtherPage"
OtherPage #this is defined in the kv file, just lazy to type it.
当我单击 ButtonChange Screen
时,我得到:
AttributeError: 'MainMenu' object has no attribute 'manager'
老实说,这并不让我感到惊讶。我想我可以通过在 python 代码中编写所有布局并在BoxLayout
或MainMenu
小部件中添加对屏幕管理器的引用来解决这个问题,但我不知道如何在 kv 文件中执行此操作。