У меня вот-вот проклятия. Все, что я пытаюсь написать с его помощью, каким-то образом терпит неудачу, будь то экран неправильно обновляется, пользовательский ввод не работает, или addstr не работает без причины. В последнем материале, который я пишу, я заметил интересное поведение пары windows. Вот пример, который дает тот же эффект:
import curses
import time
def main(term):
# Window with border of 5 to edge of terminal
win = curses.newwin(curses.LINES-10, curses.COLS-10, 5, 5)
# Fill with "O", using insstr to get around the bottom-right corner problem
for y in range(curses.LINES-10):
win.insstr(y, 0, "O"*(curses.COLS-10))
win.refresh()
time.sleep(1)
term.refresh()
time.sleep(1)
win.refresh()
time.sleep(1)
curses.wrapper(main)
Я ожидаю, что произойдет следующее:
- Прямоугольник Os с пустой рамкой 5 вокруг
- Пустой экран
- Снова прямоугольник из Os
3 никогда не бывает. Означает ли обновление term
, что win
стерто? Если да, то разве это не отменяет суть windows как независимых структур данных? Что мне тогда делать, если я хочу повторно отобразить область текста без необходимости переписывать каждый бит с помощью вызовов addstr
или insstr
? Ясно, что я неправильно понял кое-что фундаментальное о проклятиях, но каждый раз, когда мне кажется, что я знаю, что это, всплывает новый поворот сюжета.