我想在Python中构建一个应用程序,我必须检测按键被按下

时间:2017-10-06 05:41:03

标签: python input keyboard raspberry-pi raspbian

大家好我正在使用python在raspbian上构建一个汽车遥控器 但我想要的是什么时候' w'按键我想调用forward()但问题是如何获取按键按下() thimg python 感谢

1 个答案:

答案 0 :(得分:0)

您可以使用curses Raspberry-Pi 上实现您想要的效果。 Curses是CLI程序的图形API,您可以实现的不仅仅是检测关键事件。

在下面的示例中,我们打印"按下向上;"按下键时到屏幕。当按下 q 时,我们停止程序。

import curses

def example_curses(stdscr):
    stdscr.keypad(1)
    while 1:
        key = stdscr.getch()
        if key == curses.KEY_UP: 
            stdscr.addstr("Up is pressed; ")
            # call forward()
        elif key == ord('q'):
            break


def main():
    curses.wrapper(example_curses)
    print("'q' has pressed")

if __name__ == "__main__":
    main()

我们还使用了stdscr.keypad(1)因为它可以帮助我们检测特殊键的按下:

  

终端通常会返回特殊键,例如光标键或   导航键,例如Page Up和Home,作为多字节转义   序列。虽然您可以编写您的应用程序以期望这样   序列和相应的处理,诅咒可以为你做,   返回特殊值,例如curses.KEY_LEFT。让诅咒去做   这项工作,你必须启用键盘模式。