Я показываю некоторую живую статистику из процесса с проклятиями. Я новичок в этой библиотеке, поэтому я следовал этому примеру, чтобы реализовать то, что мне нужно.
Я пишу эту небольшую версию, которая резюмирует мою проблему:
import time
import curses
def draw_menu(stdscr):
global data
# Turn cursor off
curses.curs_set(False)
# Rendering text
stdscr.addstr(2, 5, "Help me please")
stdscr.addstr(5, 5, data)
# Refresh the screen
stdscr.refresh()
time.sleep(3)
data = 'some initial value'
for i in xrange(2):
curses.wrapper(draw_menu)
# Do some stuff to update values shown in the menu
data = 'updated value {}'.format(i)
time.sleep(3)
После первоначального вызова draw_menu мне нужно обновить значения, отображаемые в меню. Во время обновления (в этом примере я использовал time.sleep) значения удаляются из окна, и оно возвращается в «обычный режим терминала», я не знаю, почему.
Я хотел бы обновить данные, оставаясь все время с этим сообщением «помогите мне, пожалуйста», и отображаемыми данными.
Я думаю, что я мог бы решить эту проблему, используя потоки, но, поскольку полный код намного сложнее, я хотел бы избежать потоков.
Как я могу это решить?