Tastatureingaben anfragen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hi markjohannes

Ich nehme an die vergangenen Antworten haben noch nicht ganz zum Ziel geführt? Hier etwas für Tkinter:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-

try:
    #~~ For Python 2.x
    import Tkinter as tk
except ImportError:
    #~~ For Python 3.x
    import tkinter as tk

def taste_gedrueckt(event):
    taste_char = event.char
    taste_code = event.keycode
    taste_symbol = event.keysym
    taste_num = event.keysym_num
    print("\nFolgende Taste wurde gedrückt:"\
        + "\nChar:{}\nCode:{}\nSymbol:{}\nNummer:{}".format(
        taste_char, taste_code, taste_symbol, taste_num))
    
    app_win.title("Tasten Symbol: {}".format(taste_symbol))
    
app_win = tk.Tk()
app_win.title("Bitte Taste drücken")
app_win.geometry("300x100")
app_win.bind('<KeyPress>', taste_gedrueckt)
app_win.mainloop()
Gruss wuf :wink:
Take it easy Mates!
markjohannes
User
Beiträge: 29
Registriert: Dienstag 24. April 2018, 22:04

Wow!
Das hat perfekt funktioniert. Genau so etwas habe ich gesucht, auch wenn ich mich durch die Dokumentation gearbeitet habe; aber diese habe ich nicht so gut verstanden:(
PS: Kennst du eine Funktion mit der man einen Button klicken kann? Ich kenne invoke() aber die ist nach meiner subjektiven Meinung ziemlich langsam.

Mit freundlichen Grüßen
Johannes Schaffer
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hi markjohannes

Hier noch eine Erweiterung des obigen Skript mit einem Button und dessen Funktion .invoke():

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-

try:
    #~~ For Python 2.x
    import Tkinter as tk
except ImportError:
    #~~ For Python 3.x
    import tkinter as tk

def button_gedrueckt():
    # Diese Funktion wird durch einen Mausklick auf den 'Button-A', aber auch
    # durch drücken der Tastaturtaste 'A' aufgerufen.
    # Die Buttonfunktion .invoke() wird benützt um die 'command-Funktion des
    # Buttons aufzurufen bewirkt aber keine animierte Bewegung des Buttons!
    print("Button-A wurde gedruekt")
    
def tastatur_taste_gedrueckt(event):
    taste_char = event.char
    taste_code = event.keycode
    taste_symbol = event.keysym
    taste_num = event.keysym_num
    print("\nFolgende Taste wurde gedrückt:"\
        + "\nChar:{}\nCode:{}\nSymbol:{}\nNummer:{}".format(
        taste_char, taste_code, taste_symbol, taste_num))
    
    app_win.title("Tasten Symbol: {}".format(taste_symbol))
    
    if taste_char == "A":
        print('Hi')
        app_win.button_a.invoke()
        
app_win = tk.Tk()
app_win.title("Bitte Taste drücken")
app_win.geometry("300x100")
app_win.bind('<KeyPress>', tastatur_taste_gedrueckt)
app_win.button_a = tk.Button(app_win, text='Button-A', command=button_gedrueckt)
app_win.button_a.pack(expand=True)

app_win.mainloop()
Gruss wuf :wink:
Take it easy Mates!
Benutzeravatar
Kebap
User
Beiträge: 686
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

__deets__ hat geschrieben:um das Englisch kommst du nicht herum. Das ist im programmieren überall. Mit Google translate wird das schon gehen.
Mit DeepL geht es besser :mrgreen: viewtopic.php?t=41258
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Antworten