getch() method returns different values for the main window and pads if the key pressed is non-ASCII. For example, pressing the arrow keys I get the expected
KEY_DOWN etc in the main window, but in the pad I get
65 for the up arrow and
66 for the down arrow. Why is this, and is there a way to get larger than 255 values for special keys in a pad?
I am using Python 2.6.5.
The following code demonstrates the issue:
import curses def main(stdscr): c = None while c != curses.KEY_RIGHT: c = stdscr.getch() stdscr.addstr(0, 0, "%3d" % c) stdscr.refresh() pad = curses.newpad(20, 20) while True: c = pad.getch() pad.addstr(0, 0, "%3d" % c) pad.refresh(0, 0, 1, 0, 20, 20) if __name__ == '__main__': curses.wrapper(main)
Did you try
This is the first time I need to deal with curses in Python, and I had the same problem this morning.