以下是一个使用Kivy创建双屏菜单的示例代码:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.image import Image
from kivy.uix.label import Label
class MenuScreen(Screen):
def __init__(self, **kwargs):
super(MenuScreen, self).__init__(**kwargs)
layout = BoxLayout(orientation='vertical')
self.add_widget(layout)
self.image = Image(source='default_image.png')
layout.add_widget(self.image)
self.label = Label(text='Default label')
layout.add_widget(self.label)
class SelectionScreen(Screen):
def __init__(self, **kwargs):
super(SelectionScreen, self).__init__(**kwargs)
layout = BoxLayout(orientation='vertical')
self.add_widget(layout)
self.button1 = Button(text='Option 1', on_press=self.change_content)
layout.add_widget(self.button1)
self.button2 = Button(text='Option 2', on_press=self.change_content)
layout.add_widget(self.button2)
def change_content(self, instance):
menu_screen = self.manager.get_screen('menu')
if instance.text == 'Option 1':
menu_screen.image.source = 'image1.png'
menu_screen.label.text = 'Option 1 selected'
elif instance.text == 'Option 2':
menu_screen.image.source = 'image2.png'
menu_screen.label.text = 'Option 2 selected'
self.manager.current = 'menu'
class DualScreenApp(App):
def build(self):
sm = ScreenManager()
menu_screen = MenuScreen(name='menu')
sm.add_widget(menu_screen)
selection_screen = SelectionScreen(name='selection')
sm.add_widget(selection_screen)
sm.current = 'menu'
return sm
if __name__ == '__main__':
DualScreenApp().run()
在这个示例中,我们创建了两个屏幕:菜单屏幕(MenuScreen)和选择屏幕(SelectionScreen)。菜单屏幕包含一个图像(Image)和一个标签(Label),默认显示默认图像和标签。选择屏幕包含两个按钮(Button),当点击按钮时,它会更改菜单屏幕的图像和标签。根据点击的按钮不同,我们设置不同的图像和标签内容。
这个示例使用Kivy的屏幕管理器(ScreenManager)来管理两个屏幕,并使用屏幕名称(name)来切换屏幕。运行这个示例程序将在初始时显示菜单屏幕,点击按钮后将切换到选择屏幕,并根据所选的选项更改菜单屏幕的图像和标签。