我在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”。

最佳答案

添加:

stdscr.nodelay(True)

直到节目开始。那么getch会马上回来的。如果用户自上次调用getch以来没有推送任何内容,则返回-1。

关于python - 如何在Linux中的Python控制台程序中真正绑定(bind)键?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17539579/

10-11 07:42