Как удалить окно проклятия в Python и восстановить фоновое окно?
Вопрос
Ребята, я работаю над проклятиями Python, и у меня есть начальное окно с initscr (), и я создаю несколько новых Windows, чтобы перекрывать его, я хочу знать, смогу ли я удалить эти окна и восстановить стандартный экран без необходимости Пополните это. Есть ли путь? Я также могу спросить, может ли кто-то сказать мне разницу между окном, субфором, подушкой и дополнительной площадкой.
У меня есть этот код:
stdscr = curses.initscr()
####Then I fill it with random letters
stdscr.refresh()
newwin=curses.newwin(10,20,5,5)
newwin.touchwin()
newwin.refresh()
####I want to delete newwin here so that if I write stdscr.refresh() newwin won't appear
stdscr.touchwin()
stdscr.refresh()
####And here it should appear as if no window was created.
Решение
Это, например, должно работать:
import curses
def fillwin(w, c):
y, x = w.getmaxyx()
s = c * (x - 1)
for l in range(y):
w.addstr(l, 0, s)
def main(stdscr):
fillwin(stdscr, 'S')
stdscr.refresh()
stdscr.getch()
newwin=curses.newwin(10,20,5,5)
fillwin(newwin, 'w')
newwin.touchwin()
newwin.refresh()
newwin.getch()
del newwin
stdscr.touchwin()
stdscr.refresh()
stdscr.getch()
curses.wrapper(main)
Это заполняет терминал «S»; На любом клавишке он заполняет окно «W»; На следующем нажатии клавиши он удаляет окно и снова показывает STDSCR, так что снова все-таковое; На следующем нажатии клавиши скрипт заканчивается, и терминал возвращается к нормальному. Разве это не работает для вас? Или вы на самом деле хотите что-то другое ...?