AFAIK,Python中没有可用的curses菜单扩展,所以你必须推出自己的解决方案.我知道这个补丁http://bugs.python.org/issue1723038,但我不知道它的当前状态.我找到了一个很好的Python类,在http://www.promisc.org/blog/?p=33包含了我想要的'cmenu',但我也遇到了问题.我想创建一个菜单,用户可以选择一个突出显示的元素,但不是立即执行特定的操作,我想显示另一个菜单,然后可能是另一个,请求输入等.我的第一个想法是删除现有的cmenu screen.clear()或cleanup()但是在绘制新菜单之前不会删除旧菜单,新菜单如下所示:
0. top
1. Exit
2. Another menu
-- end of the old menu that should go away --
3. first
4. second
5. third
Run Code Online (Sandbox Code Playgroud)
没有用于删除cmenu()中项目的remove()方法.我想旧的菜单没有被清除的事实是由display()方法中的'while True'循环引起的,但是当我删除它时,一些奇怪的东西正在发生.我使用的是Python 2.7,这是我目前的代码:
#!/usr/bin/python
#
# Adapted from:
# http://blog.skeltonnetworks.com/2010/03/python-curses-custom-menu/
#
# Goncalo Gomes
# http://promisc.org
#
import signal
signal.signal(signal.SIGINT, signal.SIG_IGN)
import os
import sys
import curses
import traceback
import atexit
import time
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
class cmenu(object):
datum = {}
ordered = []
pos = 0
def __init__(self, …Run Code Online (Sandbox Code Playgroud)