2012-03-09 7 views
1
r = 0 
mypad.addstr(0, 0, "Test...") 

while 1: 
    mypad.refresh(r, 0, 1, 1, 10, 10) 
    c = mypad.getch() 

    if c == curses.KEY_UP: 
     r -= 1 
    elif c == curses.KEY_DOWN: 
     r += 1 
    elif c == ord('q'): break 

Test...が表示されますが、上/下を押すと消えます。パッドを正しく移動するには?

更新:

実際に私はだけ上向きではなく、初期位置の下、それはスクロールした複数行を追加します。どんなに大きなrでも、テキストは最初の行に残ります。私は何が欠けていますか?

答えて

2

上下矢印の値を確認し、それをcurses.KEY_UP/DOWNと比較してください。 My cursor keys do not workを参照してください。例えば

、私の端末上の3つの文字としてキーアップリターン:

import curses 

with curses_screen() as stdscr: 
    pad = curses.newpad(100, 100) 
    pad.addstr(0,0, curses.longname()) 
    for i in range(1, 10): 
     pad.addstr(i,0, str(i)) 

    coord = 5, 5, 20, 75 
    pad.refresh(0, 0, *coord) 

    KEY_UP, KEY_DOWN = 'AB' 
    y = 0 
    for c in iter(pad.getkey, 'q'): 
     if c in '\x1b\x5b': continue # skip escape seq 
     y -= (c == KEY_UP) 
     y += (c == KEY_DOWN) 
     y = min(max(y, 0), 9) 
     pad.refresh(y, 0, *coord) 

Definition of curses_screen()

+0

この優雅な方法でESCAPEキーコードを取得していただき、ありがとうございます。 –

関連する問題