簡體   English   中英

綁定按鍵

[英]Binding key presses

我目前正在做一個項目,我從我的筆記本電腦通過 ssh 連接到樹莓派來控制一些電機。 我用 Python 編寫了一些代碼,允許您輸入一個字母,並根據字母向前或向后移動。 但是,您必須在每個字母后按 Enter 才能執行代碼。 有沒有一種方法可以讓界面檢測字母而不需要按回車鍵。 我知道你可以在 tkinter 中綁定按鍵,但我不能通過 ssh 來做到這一點。 提前致謝

您可以使用curses庫。

您可以使用screen.getch()函數獲取按下的鍵。 它將返回密鑰的十進制代碼(請參閱ASCII表 )。

一個例子:

import curses


screen = curses.initscr()
curses.cbreak()
screen.keypad(1)

key = ''

while key != ord('q'):  # press <Q> to exit the program
    key = screen.getch()  # get the key
    screen.addch(0, 0, key)  # display it on the screen
    screen.refresh()

    # the same, but for <Up> and <Down> keys:
    if key == curses.KEY_UP:
        screen.addstr(0, 0, "Up")
    elif key == curses.KEY_DOWN:
        screen.addstr(0, 0, "Down")

curses.endwin()

另一種選擇是sshkeyboard庫。 只需pip install sshkeyboard ,然后使用以下代碼通過 SSH 檢測按鍵:

from sshkeyboard import listen_keyboard

def press(key):
    print(f"'{key}' pressed")

def release(key):
    print(f"'{key}' released")

listen_keyboard(
    on_press=press,
    on_release=release,
)

def press您可以有一些邏輯來對特定鍵做出反應:

def press(key):
    if key == "up":
        print("up pressed")
    elif key == "down":
        print("down pressed")
    elif key == "left":
        print("left pressed")
    elif key == "right":
        print("right pressed")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM