窗口显示屏幕而不调用刷新()?

问题描述 投票:0回答:2

python curses文档中,它声明如下:

当你调用一个方法来显示或擦除文本时,效果不会立即显示在显示器上。相反,您必须调用窗口对象的 refresh() 方法来更新屏幕。

因此,我希望下面的代码不会显示“hello world”:

import curses
from curses import wrapper

def main(scr):
  scr.clear()
  scr.addstr("hello world!")
  scr.getkey()

wrapper(main)

然而,在我的终端中运行它会产生“hello world!”。这是为什么?

python curses
2个回答
0
投票

即使没有显式调用 refresh() 方法,文本仍然显示在屏幕上。这是因为 addstr() 方法在内部隐式调用了 refresh() 方法。因此文本被添加到屏幕并显示,而不需要显式调用 refresh()。但是,最好在对屏幕进行更改后调用 refresh() 以确保它们立即更新。


0
投票

根据文档,

getch()
(和其他输入功能)在内部刷新屏幕。

getch() 刷新屏幕,然后等待用户按下一个键

© www.soinside.com 2019 - 2024. All rights reserved.