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 回答