Я обнаружил, что приложение будет отображаться только после принятия пользовательского ввода. Другими словами, я не мог ничего нарисовать на терминале до принятия пользовательского ввода; Мне пришлось сделать это после. Этот код исправляет это:
Код: Выделить всё
stdscr.nodelay(True)
while stdscr.getch() != -1:
pass
stdscr.nodelay(False)
Что случилось?
Изменить >
Мне посоветовали включить минимально воспроизводимый пример. Этот код здесь:
импортировать проклятия
def main(stdscr):
# Инициализировать ncurses
curses.curs_set(1) # Показать курсор
stdscr.clear()
# Получить размеры экрана
height, width = stdscr.getmaxyx()
input_win_height = 4
output_win_height = высота — input_win_height — 1
Код: Выделить всё
# Create windows
input_win = curses.newwin(input_win_height, width, 0, 0)
currentCommand=""
max_height, max_width = input_win.getmaxyx()
outputRow=0
inData={"row": 2, "col":1,"window":input_win}
#stdscr.nodelay(True)
#stdscr.getch() # Drain the input buffer
#stdscr.nodelay(False)
def setCommandWindow(inData):
inData["row"]=2
inData["col"]=1+1
inData["window"].clear()
inData["window"].box()
inData["window"].addch(2,1, ">")
inData["window"].refresh()
setCommandWindow(inData)
while True:
key = stdscr.getch()
setCommandWindow(inData)
print("Quitting the application")
if __name__ == "__main__":
curses.wrapper(main)
Подробнее здесь: https://stackoverflow.com/questions/792 ... y-anything