_tkinter.TclError: bad event type or keysym "+"

Fragen zu Tkinter.
Antworten
Sinnentlehrt
User
Beiträge: 67
Registriert: Mittwoch 30. Januar 2013, 22:32

Hallo Leute,

mein Lehrbuch hat jetzt schon das zweite Beispiel Tkinter Skript das hakt. Leider ist es mir nicht möglich nachzuvollziehen wo der Fehler liegt.
Das Python 2.7 läuft auf einem Linux Mint 14 in einem Terminal Emulator.

Hier mal das Skript:

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)

main = Tkinter.Tk()

# Key-Events
e = Tkinter.Entry(main)
e.bind('<p>',kev)
e.bind('<+>',kev)
e.bind('<%>',kev)
e.bind('<,>',kev)
e.pack()

# Hilfe-Label
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()
Und hier die Fehlermeldung

Code: Alles auswählen

import gui_tastatur
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/gutchy/python/gui_tastaturV2.py", line 16, in <module>
    e.bind('<+>',kev)
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1003, in bind
    return self._bind(('bind', self._w), sequence, func, add)
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 958, in _bind
    self.tk.call(what + (sequence, cmd))
_tkinter.TclError: bad event type or keysym "+"
leider brachte mich die Problembehandlung in diesem Thread nur ein bisschen weiter, geht um das selbe Prob.
http://www.python-forum.de/viewtopic.php?f=18&t=30300

Gruß,

gutschy
Du weißt das du vergessen hast einzukaufen, wenn du dich morgens mit Geschirrspülmittel duscht.
BlackJack

@Sinnentlehrt: Was das Problem ist, kann man doch kaum deutlicher sagen als die Fehlermeldung. Die betroffene Zeile wird angegeben: ``e.bind('<+>',kev)`` und die Ausnahme sagt, dass dieses + so nicht geht weil es nicht in der Liste der `keysyms` ist. Da sollte '<plus>' gehen oder '+' ohne die <, >.
Sinnentlehrt
User
Beiträge: 67
Registriert: Mittwoch 30. Januar 2013, 22:32

Code: Alles auswählen

e = Tkinter.Entry(main)
e.bind('p',kev)
e.bind('+',kev)
e.bind('%',kev)
e.bind(',',kev)
e.pack()
Danke, so klappt das auch. Hatte meinen ersten Versuch noch mit doppelten Anführungszeichen gemacht.
Du weißt das du vergessen hast einzukaufen, wenn du dich morgens mit Geschirrspülmittel duscht.
Antworten