如何在python中删除诅咒窗口并还原后台窗口?

2024-09-30 18:28:55 发布

您现在位置:Python中文网/ 问答频道 /正文

伙计们,我正在处理python诅咒,我有了initscr()的初始窗口,我创建了几个新窗口来重叠它,我想知道我是否可以删除这些窗口并恢复标准屏幕,而不必重新填充它。有办法吗?我也可以问是否有人能告诉我一个窗口,子窗口,垫和子垫的区别。

我有这个密码:

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.

Tags: 标准ifhere屏幕itrefreshcurses区别
1条回答
网友
1楼 · 发布于 2024-09-30 18:28:55

例如,这应该起作用:

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”填充终端;在任何keystoke,它将用“w”填充窗口;在下一次击键时,它将删除窗口并再次显示stdscr,因此它再次为all-“S”;在下一次击键时,脚本结束,终端恢复正常。这对你不管用吗?或者你真的想要不同的。。。?

相关问题 更多 >