2

Python [linux] でキーバインディングを探しています。

私のプログラムは、キー 'q' をキャッチして正しく閉じる必要があります。

私はこれを見つけました

import curses
stdscr = curses.initscr()
curses.cbreak()
stdscr.keypad(1)

stdscr.addstr(0,10,"Hit 'q' to quit")
stdscr.refresh()

key = ''
while key != ord('q'):
    key = stdscr.getch()
    stdscr.addch(20,25,key)
    stdscr.refresh()
    if key == curses.KEY_UP: 
        stdscr.addstr(2, 20, "Up")
    elif key == curses.KEY_DOWN: 
        stdscr.addstr(3, 20, "Down")

curses.endwin()

しかし、何かキーが押されている間、私のプログラムは毎秒動作し、バックグラウンドで 'q' をキャッチしなければなりません。

4

1 に答える 1

0

追加:

stdscr.nodelay(True)

番組冒頭へ。その後、 getch は常にすぐに戻ります。最後に getch を呼び出してからユーザーが何もプッシュしていない場合は、-1 が返されます。

于 2013-07-09T03:49:39.430 に答える