相关疑难解决方法(0)

如何在Python curses中创建菜单和子菜单?

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)

python curses python-2.7

16
推荐指数
1
解决办法
3万
查看次数

标签 统计

curses ×1

python ×1

python-2.7 ×1