1
Попытка получить действительно основное меню проклятий для работы. Я слежу за учебником, но я как бы отделился от своего дела. Я пытался прикоснуться ко всему с комментариями. Я просто хочу понять, как заставить выборы работать.Меню python curses не работает
import sys
import curses
import time
def menu(window, dims):
window.nodelay(0) # not sure what this does, lol
window.clear() # clear window
selection = -1 # the menu code is from the tutorial
option = 0 # so most of this is foreign to me
while selection < 0: # loop
graphics = [0]*2 # point to list
graphics[option] = curses.A_REVERSE # set graphic, reverse BKGND color
window.border() # border
window.addstr(1, dims[1]/2-2, "Menu")
window.addstr(3, dims[1]/2-2, "Play", graphics[0])
window.addstr(4, dims[1]/2-2, "Exit", graphics[1])
window.refresh() # refresh the window
action = window.getch() # get input
if action == curses.KEY_UP: # if key is up
option = (option - 1) # go up?
elif action == curses.KEY_DOWN: # key is down
option = (option + 1) # go down?
elif action == ord('\n'): # if RETURN
selection = option # make selection
window.clear() # clear all
if selection == 0: # if is 0, do nothing right now.
return # it's not changing selection
elif selection == 1: # so waiting for that to add here
return
def main(): # main function // ran first
window = curses.initscr() # making new window
dims = window.getmaxyx() # getting window dimensions
if not curses.has_colors(): # color test
curses.endwin() # color test
print "no colors" # color test
sys.exit() # color test
else: # color test
curses.start_color() # color test
curses.noecho() # don't echo the keys on the screen
curses.cbreak() # don't wait enter for input
curses.curs_set(0) # don't show cursor
main_loop(window, dims) # go into main loop
def main_loop(window, dims):
while menu(window, dims):
pass
window.clear()
window.addstr(dims[0]/2, (dims[1]-4)/2, "Exiting...")
window.refresh()
time.sleep(1)
curses.noecho()
curses.cbreak()
curses.curs_set(1)
curses.endwin()
if __name__ == '__main__':
main()
Каково текущее поведение при запуске этого кода и как оно не соответствует ожидаемому? Кроме того, это Python 2 или Python 3? Пожалуйста, пометьте его одним или другим, чтобы другие легко знали, как тестировать ваш код. – eestrada
Это ничего не делает. Входной мудрый. Выбор должен измениться, когда вы нажимаете клавишу «вверх» или «вниз». И python 2. Редактирование. –
Protip: [добавить код регистрации] (https://gist.github.com/waynew/5446da9ce372fa127d85), чтобы помочь вам понять, что происходит. 'tail -f test.log' на Linux/Mac или использовать baretail в Windows. –