Ich habe ein einfaches Programm, um mich mit Tastatur-Listenern vertraut zu machen, die pynput verwenden. Was es macht, ist nicht wichtig. Wichtig ist, dass das shift_pressed
Attribut nie zu True
zu ändern scheint. Mein Programm sieht derzeit wie folgt aus:pynput Tastatur-Listener gibt die Verschiebung zurück, wenn shift gedrückt wird, ändert aber nicht shift_pressed
from pynput.keyboard import Controller, Listener
boo = True
keyboard = Controller()
fib_lst = [0, 1]
def on_press(key):
print(key)
print(keyboard.shift_pressed)
Listener(on_press=on_press).start()
while boo:
nxt = fib_lst[-1] + fib_lst[-2]
input(nxt)
fib_lst.append(nxt)
Ich versuche, so etwas wie dies in on_press
(oder on_release
) zu tun:
def on_press(key):
if key == Key.delete:
if keyboard.shift_pressed:
func1()
else:
func2()
Dieser Code sollte func1
durchführen, wenn Verschiebung gedrückt wird oder wenn es func2
ist nicht. Aber es ist derzeit nur func2
seit shift_pressed
ist immer falsch. Was kann ich anders machen, um shift_pressed
so zu funktionieren, wie es sollte?
Edit 1: Gibt das gewünschte Endergebnis deutlicher an.
Edit 2: Die anhängende Zeichenfolge wurde in zwei verschiedene Funktionen geändert, um mehr Klarheit zu schaffen.
bearbeiten 3: die Parameter der letzten Frage wird geändert neueres Beispiel entsprechen
Nachdem ich das Problem in Ihrem github Repo veröffentlicht hatte, sah ich [dieses geschlossene Problem] (https://github.com/moses-palmer/pynput/issues/20). Ich werde hier das Muster verwenden, das du für meine Zwecke benutzt hast. Danke für Ihre Hilfe. –