在 python 中为移动应用程序创建主菜单

2022-01-15 00:00:00 python python-3.x kivy kivy-language

问题描述

我不知道如何开始显示主菜单的代码.我希望这个主菜单显示 5 个不同的选项,当单击其中一个选项时,它会打开该页面/选项.我也安装了 Kivy,总体目标是制作一个移动应用程序.我的 python 经验很低,所以我实际上并没有为此目标编写任何代码,但我有一个完整的布局,我希望应用程序看起来像.

更新:

这是我目前所拥有的.

mainMenu = {}mainMenu ['1'] = '选项 1'mainMenu ['2'] = '选项 2'mainMenu ['3'] = '选项 3'mainMenu ['4'] = '选项 4'mainMenu ['5'] = '选项 5'打印(主菜单)而真:选择 = 输入()如果选择 == '1':print('第 1 页')elif 选择 == '2':打印('第 2 页')elif 选择 == '3':打印('第 3 页')elif 选择 == '4':print('第 4 页')elif 选择 == '5':print('第 5 页')休息

解决方案

请参考下面的示例并根据您的要求进行修改.我建议阅读大量文档

I'm have trouble figuring out how to begin a code that displays a main menu. I want this main menu to display 5 different options that when on of them is clicked, it open that page/option. I also have Kivy installed, and the overall goal is to make a mobile app. My python experience is low, so I haven't actually written out any code for this goal but I have a full layout of what I want the app to look like.

Updated:

This is what I have so far.

mainMenu = {}
mainMenu ['1'] = 'Option 1'
mainMenu ['2'] = 'Option 2'
mainMenu ['3'] = 'Option 3'
mainMenu ['4'] = 'Option 4'
mainMenu ['5'] = 'Option 5'

print(mainMenu)
while True:
    selection = input()
    if selection == '1':
        print('Page 1')
    elif selection == '2':
        print('Page 2')
    elif selection == '3':
        print('Page 3')
    elif selection == '4':
        print('Page 4')
    elif selection == '5':
        print('Page 5')
        break

解决方案

Please refer to the example below and modify it as per your requirementst. I recommend reading the documentation abound Kivy Dropdown list.

Example

main.py

from kivy.app import App
from kivy.uix.dropdown import DropDown
from kivy.uix.floatlayout import FloatLayout
from kivy.config import Config


class SubMenu(DropDown):
    pass


class MainMenu(FloatLayout):

    def display_selected_submenu(self, instance, x):
        print("Page " + x)


class TestApp(App):
    title = "Kivy Drop-Down List Demo"
    Config.set("graphics", "width", "800")
    Config.set("graphics", "height", "480")

    def build(self):
        return MainMenu()


if __name__ == '__main__':
    TestApp().run()

test.kv

#:kivy 1.10.0
#:import Factory kivy.factory.Factory

<CustomButton@Button>:
    size_hint_y: None
    height: 40
    font_size: 18


<SubMenu>:
    on_select: app.root.display_selected_submenu(self, args[1])

    CustomButton:
        id: button1
        text: 'Open'
        txt: "1"
        on_release: root.select(self.txt)

    CustomButton:
        id: button2
        text: 'Save'
        txt: "2"
        on_release: root.select(self.txt)

    CustomButton:
        id: button3
        text: 'Exit'
        txt: "3"
        on_release: root.select(self.txt)

<MainMenu>:
    canvas.before:
        Color:
            rgba: 0.5, 0.5, 0.5, 0.5
        Rectangle:
            pos: 0,0
            size: self.width, self.height

    Button:
        id: mainbutton
        text: "File Menu"
        font_size: 20
        size_hint: None, None
        size: 150, 50
        top: root.top
        on_release: Factory.SubMenu().open(self)

Output

相关文章