How to get input as a Left Arrow key?

前端 未结 3 1992
心在旅途
心在旅途 2020-12-19 14:42

I want to get the left and right arrow key as a one of the input. How can i get it? Is there any way?

相关标签:
3条回答
  • 2020-12-19 15:11

    This is possible with:

    Curses Urwid PyGame

    Tkinter is in the standard library.

    0 讨论(0)
  • 2020-12-19 15:19

    That's how you can do it with ncurses. Unlike TkInter, X11 is not required.

    #! /usr/bin/python
    
    import curses
    
    screen = curses.initscr()
    try:
        curses.noecho()
        curses.curs_set(0)
        screen.keypad(1)
        screen.addstr("Press a key")
        event = screen.getch()
    finally:
        curses.endwin()
    
    if event == curses.KEY_LEFT:
        print("Left Arrow Key pressed")
    elif event == curses.KEY_RIGHT:
        print("Right Arrow Key pressed")
    else:
        print(event)
    
    0 讨论(0)
  • 2020-12-19 15:26

    Using Tkinter you can do the following .... I found it on the net

    # KeyLogger_tk2.py
    # show a character key when pressed without using Enter key
    # hide the Tkinter GUI window, only console shows
    
    try:
       # Python2
        import Tkinter as tk
    except ImportError:
        # Python3
        import tkinter as tk
    
    def key(event):
    """shows key or tk code for the key"""
        if event.keysym == 'Escape':
            root.destroy()
        if event.char == event.keysym:
         # normal number and letter characters
            print( 'Normal Key %r' % event.char )
        elif len(event.char) == 1:
          # charcters like []/.,><#$ also Return and ctrl/key
            print( 'Punctuation Key %r (%r)' % (event.keysym, event.char) )
        else:
          # f1 to f12, shift keys, caps lock, Home, End, Delete ...
            print( 'Special Key %r' % event.keysym )
    
    
    root = tk.Tk()
    print( "Press a key (Escape key to exit):" )
    root.bind_all('<Key>', key)
    # don't show the tk window
    root.withdraw()
    root.mainloop()
    
    0 讨论(0)
提交回复
热议问题