我正在尝试在此窗口中使用this使用curses添加一个窗口和一个文本,并且:
window.addstr("This is a text in a window")
代码:
class View:
def __init__(self, ):
self.stdscr = curses.initscr()
curses.noecho()
curses.cbreak()
self.stdscr.keypad(True)
# -----------------
self.add_window_and_str()
self.add_str()
# -----------------
self.stdscr.getkey()
curses.endwin()
def add_str(self): #just text in standart screen
self.stdscr.addstr("test")
self.stdscr.refresh()
def add_window_and_str(self):
scr_limits = self.stdscr.getmaxyx()
win = curses.newwin(scr_limits[0] - 10, scr_limits[1] - 10, 5, 5)
win.addstr("Example String")
win.refresh()
self.stdscr.refresh()
添加self.add_str
的文字是可见的,但"示例字符串"不是。
我如何操纵窗口使文本可见?
答案 0 :(得分:0)
初始化时,标准屏幕有待更新(清除屏幕)。 refresh
末尾的add_window_and_str
调用会覆盖win.addstr
输出。您可以在第一次调用add_window_and_str
之前移动该电话。之后,对stdscr
的更改将位于窗口外的部分屏幕中。
还有另一个问题:调用getch
刷新关联的窗口。通常会对程序进行组织,以便getch
与您希望保留的任何窗口相关联,并且#34;以便其他窗口不会遮挡它们的更新。如果您从win
返回add_window_and_str
变量,则可以将该窗口与getch
一起使用。