curses: как найти высоту области написанного текста

Я создал pad в curses, затем заполнил его кучей текста. высота блока постоянна, однако я хотел бы знать, сколько строк в письменной части блока или его высоту.

rows, cols = std.getmaxyx()
text_win = cur.newpad(rows*3, cols)
text_win.addstr("some stuff")

person Ahmad    schedule 15.08.2020    source источник


Ответы (1)


Вы можете сделать это, просмотрев результат getyx. :

rows, cols = std.getmaxyx()
text_win = cur.newpad(rows*3, cols)
text_win.addstr("some stuff")
cury, curx = text_win.getyx()
used_rows = cury + (1 if curx == 0 else 0)

Поскольку addstr начинается в начале координат, вам не нужно дважды вызывать getyx. Условное выражение учитывает перенос строк.

person Thomas Dickey    schedule 15.08.2020