Python3 curses behavior

Vlasov Vitaly vnigtha at gmail.com
Sun Feb 10 23:06:00 CET 2013


суббота, 9 февраля 2013 г., 23:22:47 UTC+4 пользователь Terry Reedy написал:
> On 2/9/2013 6:23 AM, Vlasov Vitaly wrote:
> 
> > Hello.
> 
> >
> 
> > I found strange behavior of curses module, that i can't understand. I
> 
> > initialize screen with curses.initscr(), then i create subwin of
> 
> > screen with screen.subwin(my_subwin_sizes). After that i fill subwin
> 
> > with my_char in for-loop. On last char in last line subwin.addch()
> 
> > raises exception.
> 
> 
> 
> I have never used curses but I have used text screens. I suspect that 
> 
> addch moves the cursor to the position beyond where the character is 
> 
> added, but there is no such position. I remember having problems writing 
> 
> to the last char of a 24x80 screen without getting either a scroll or 
> 
> beep if scrolling was disabled.
> 
> 
> 
> > This is my problem. Why? How to fix it?
> 
> 
> 
> Perhaps this will help:
> 
> window.leaveok(yes)
> 
> If yes is 1, cursor is left where it is on update, instead of being at 
> 
> “cursor position.” This reduces cursor movement where possible. If 
> 
> possible the cursor will be made invisible.
> 
> 
> 
> > (If i will ignore exception, then last char will be displayed)
> 
> 
> 
> Otherwise, just catch the exception, as you already discovered.
> 
> 
> 
> > Here simple example: http://pastebin.com/SjyMsHZB
> 
> 
> 
> -- 
> 
> Terry Jan Reedy

Thank you.

I tried everything in my test script.
win.leaveok() - no effect
curses.cur_vis() - no effect
win.scrollok() - start newline and place cursor on it

It's only one last option:
on last line last char try/except with pass.



More information about the Python-list mailing list