получить обновленный размер экрана в Python Curses - PullRequest
0 голосов
/ 27 октября 2018

Я использую библиотеку curses в python, и я знаю единственный способ получить размеры экрана с помощью curses.LINES и curses.COLS.Однако эти значения никогда не обновляются, даже когда читается ключ "KEY_RESIZE", как в следующем примере:

import curses

f = open("out.log", "w")

def log(msg):
    f.write(msg)
    f.flush()

stdscr = curses.initscr()
curses.noecho()
curses.cbreak()
stdscr.keypad(True)

while True:
    stdscr.clear()
    stdscr.refresh()
    key = stdscr.getkey()
    log(key)
    if key == "KEY_RESIZE":
        log("{} {}".format(curses.LINES, curses.COLS))
    if key == "q":
        break

stdscr.keypad(False)
curses.nocbreak()
curses.echo()
curses.endwin()

f.close()

В моем выходном файле out.log я вижу, что когда я изменяю размеры проклятийв окне правильно записывается KEY_RESIZE y, но значения curses.LINES и curses.COLS не обновляются.Чего мне не хватает?

1 Ответ

0 голосов
/ 27 октября 2018

Используйте rows, cols = stdscr.getmaxyx() вместо curses.LINES и curses.COLS

...