(so, oder so ähnlich, denk ich mir)
button1.bind('<Button-1> <Tastatur-1>',<funktion>)
Danke im Vorraus

Code: Alles auswählen
def keyPressEvent(self, e):
zch = e.key()
if zch == Qt.Key_Escape:
print('Esc wurde gedrückt')
self.close()
# repl = QMessageBox(YesNoCancel,'wirklich beenden' )
elif zch == Qt.Key_Space:
print('<Space> gedrückt')
elif zch == Qt.Key_Backspace:
print('<Backspace> gedrückt')
# elif zch == Qt.Key_Less:
# print('<Kleiner> gedrückt')
elif zch == Qt.Key_Right:
print('<Pfeil rechts> gedrückt')
elif zch == Qt.Key_Left:
print('< Pfeil links > gedrückt')
elif zch == Qt.Key_Up:
print('<Pfeil-up> gedrückt')
elif zch == Qt.Key_Down:
print('<Pfeil-down> gedrückt')
elif zch == Qt.Key_Enter:
print('<Enter> gedrückt')
else:
if len(str(zch)) == 2:
print(f'es wurde {chr(e.key())} gedrückt. ')
Code: Alles auswählen
#!/usr/bin/env python
# coding: utf-8
from __future__ import absolute_import, division, print_function
from functools import partial
import Tkinter as tk
class NumberPad(tk.Frame):
def __init__(self, master, on_key=None):
tk.Frame.__init__(self, master)
character2keysym = {
'#': 'numbersign',
'*': 'asterisk',
}
for i, row in enumerate(['789', '456', '123', '*0#']):
for j, character in enumerate(row):
command = partial(on_key, character)
button = tk.Button(self, text=character, command=command)
button.grid(row=i, column=j)
keysym = character2keysym.get(character, character)
self.bind(
'<KeyPress-{}>'.format(keysym),
partial(lambda f, _: f(), command),
)
def main():
root = tk.Tk()
root.title('Number Pad')
label = tk.Label(root)
label.pack()
pad = NumberPad(root, lambda character: label.config(text=character))
pad.pack()
pad.focus()
root.mainloop()
if __name__ == '__main__':
main()