Tastaturbinding unter Linux
Verfasst: Samstag 27. Oktober 2012, 09:59
Hallo Zusammen,
ich folge den tkinter Übungen aus einem Buch. Nun komme ich zum Problem das Python3 unter Linux nicht richtig mit Sonderzeichen umgehen kann. Also bei Tastaturereignissen.
Bis zu e.bind("<p>", kev) funktioniert es wunderbar, dannach laufe ich in folgenden Fehler:
Hat mir hier jemand einen Tipp ?
Gruss, Kev
ich folge den tkinter Übungen aus einem Buch. Nun komme ich zum Problem das Python3 unter Linux nicht richtig mit Sonderzeichen umgehen kann. Also bei Tastaturereignissen.
Bis zu e.bind("<p>", kev) funktioniert es wunderbar, dannach laufe ich in folgenden Fehler:
Ersetze ich das "+" durch einen Buchstaben funktioniert es wieder.Traceback (most recent call last):
File "ex17-keys.py", line 20, in <module>
e.bind("<+>",kev)
File "/usr/lib/python3.2/tkinter/__init__.py", line 977, in bind
return self._bind(('bind', self._w), sequence, func, add)
File "/usr/lib/python3.2/tkinter/__init__.py", line 932, in _bind
self.tk.call(what + (sequence, cmd))
_tkinter.TclError: bad event type or keysym "+"
Hat mir hier jemand einen Tipp ?
Gruss, Kev
Code: Alles auswählen
import tkinter
def ende():
main.destroy()
#def kev(e):
#lbanz["text"] = "Zeichen:" + e.char + ", Beschreibung:" + e.keysym + ",codezahl: " + str(e.keycode)
def kev(e):
lbanz["text"] = "Zeichen:" + e.char \
+ ", Beschreibung: " + e.keysym \
+ ", Codezahl: " + str(e.keycode)
main = tkinter.Tk()
#key events
e = tkinter.Entry(main)
e.bind("<p>",kev)
e.bind("<+>",kev)
e.bind("<%>",kev)
e.bind("<,>",kev)
e.pack()
#hilfelabel
lbhlp = tkinter.Label(main, text="taste: p oder + oder % oder ,", width=40)
lbhlp.pack()
#anzeigelabel
lbanz = tkinter.Label(main)
lbanz.pack()
#ende button
bende = tkinter.Button(main, text = "ende", command = ende)
bende.pack()
main.mainloop()