带有cursesmenu的动态子菜单项

时间:2018-02-27 23:16:07

标签: python menu curses

我正在使用Python的curses-menu软件包,并了解在调用.show()之前静态定义菜单时如何在菜单中创建子菜单。我正在尝试制作一个菜单项,当选择该菜单项时,它将动态生成所选子菜单的项目。换句话说,当我选择一个项目时,我希望运行代码,比如说,接受一些用户输入,并将每个字符串作为项目制作类似SelectMenu的内容。最后,我想使用所选字符串作为函数的输入。

这是我尝试的内容:

# Import the necessary packages
from cursesmenu import *
from cursesmenu.items import *

def work_with_selection(selection):
    print('You selected {}'.format(selection))

def build_sub():
    items = []
    for i in range(3):
        item = input('Type an item: ')
        items.append(item)
    selection = SelectionMenu(items).get_selection(items)
    work_with_selection(selection)

# Create the menu
menu = CursesMenu("Title", "Subtitle")

# Create some items

# Dynamically build submenu
build_item = FunctionItem("Build dynamic submenu", build_sub)

menu.append_item(build_item)

# Finally, we call show to show the menu and allow the user to interact
menu.show()

除了我从子菜单中选择退出,父菜单重绘,光标键停止工作外,它似乎有效。它不是移动选择器,而是为控制字符提供如下左上角的字母:

^[[B^[[A^[[B───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                                                                                                                          │
│ Title                                                                                                                                    │
│                                                                                                                                          │
│ Subtitle                                                                                                                                 │
│   1 - Build dynamic submenu                                                                                                              │
│   2 - Exit                                                                                                                               │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
│   4 - Exit                                                                                                                               │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

我使用的是Python 3。

正在使用SelectionMenu正确的方法吗?如果是这样,一旦我返回它,如何修复父主菜单?如果没有,我应该如何创建这样一个动态子菜单?

0 个答案:

没有答案