How to scroll text in Python/Curses subwindow?

lecodesportif picture lecodesportif · Mar 25, 2010 · Viewed 31.4k times · Source

In my Python script which uses Curses, I have a subwin to which some text is assigned. Because the text length may be longer than the window size, the text should be scrollable.

It doesn't seem that there is any CSS-"overflow" like attribute for Curses windows. The Python/Curses docs are also rather cryptic on this aspect.

Does anybody here have an idea how I can code a scrollable Curses subwindow using Python and actually scroll through it?

\edit: more precise question

Answer

lecodesportif picture lecodesportif · Mar 26, 2010

OK with window.scroll it was too complicated to move the content of the window. Instead, curses.newpad did it for me.

Create a pad:

mypad = curses.newpad(40,60)
mypad_pos = 0
mypad.refresh(mypad_pos, 0, 5, 5, 10, 60)

Then you can scroll by increasing/decreasing mypad_pos depending on the input from window.getch() in cmd:

if  cmd == curses.KEY_DOWN:
    mypad_pos += 1
    mypad.refresh(mypad_pos, 0, 5, 5, 10, 60)
elif cmd == curses.KEY_UP:
    mypad_pos -= 1
    mypad.refresh(mypad_pos, 0, 5, 5, 10, 60)