Python诅咒窗口无法始终显示

时间:2020-07-04 20:57:14

标签: python-3.x python-curses

我是第一次尝试诅咒,并为游戏编写了一个简单的菜单。我阅读了有关使用垫子和窗户的信息,并成功地编写了一些简单的程序。现在我遇到了一个问题。

这是一个产生相同问题的小例子:

import curses

def main(term):
    win1 = curses.newwin(5, 10, 5, 5)
    win2 = curses.newwin(5, 10, 11, 5)
    
    for y in range(5):
        win1.insstr(y, 0, "0"*10)
        win2.insstr(y, 0, "1"*10)
    
    term.getch()
    win1.getch()
    term.getch()
    win2.getch()
    term.getch()
    win1.getch()

curses.wrapper(main)

我对Windows的最初理解是,它们将数据分别保存到整个终端,并在刷新时显示它们。我没有在任何窗口上调用refresh,因为我读到getch会自动执行此操作。因此,我期望在反复敲击一个键时发生的事情是:空白,win1可见但不win2,空白,win2可见但不win1,空白,win1可见但不win2,终止。实际发生的情况是:空白,win1可见但win2不可见,win1可见但win2不可见,两者,两者都终止。

这使我认为刷新窗口时,它们的内容已粘贴到term中,并且由于从未清除过term,因此它们会停留在该位置。情况并非如此,因为如果我改为这样做:

win1.getch()
term.getch()
win2.getch()
term.getch()
win1.getch()

我得到:win1可见但win2不可见,空白,win2可见但win1直到终止。

显示了

win1,然后按预期消失了,但是再也没有出现,并且win2永不消失。显然,我对诅咒的心理模型已经过时了。

0 个答案:

没有答案