list.bind() indirekt

Fragen zu Tkinter.
Antworten
MacEvil
User
Beiträge: 52
Registriert: Mittwoch 21. Januar 2004, 21:40

Hallo,

extrem komisch :

Code: Alles auswählen

def aa () :
	sys.exit()

list.bind('<Double-1>',aa)
geht nicht

Code: Alles auswählen

list.bind('<Double-1>',sys.exit)
geht

:?
Möge die Python-Community gedeihen
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Hi. Funktionen, die mit bind zugewiesen wurden, wird immer ein Event übergeben. Deine Funktion will das aber gar nicht und da meckert Python :wink: . Versuchs mal mit

Code: Alles auswählen

def aa (event) : 
   sys.exit(event)
Das läuft auf genau dasselbe raus, wie dein unteres, weil sys.exit nämlich 1 Argument akzeptiert (aa vorher aber nicht) und da wird halt der event übergeben...

Und jetzt bitte auch nicht meckern das, dass dumm ist, weil du kannst mit dem event ziemlich viel anfangen, würdest du in der Funktion was anderes machen. Im Event werden alle Daten übergeben, die gerade in dem Moment aktuell waren, als '<Double-1>' ausgelöst wurde, also Position des Mauszeigers etc. Wenn man will, kann man das ziemlich professionell ausnutzen.

Milan
MacEvil
User
Beiträge: 52
Registriert: Mittwoch 21. Januar 2004, 21:40

Cool :)

Alles klar :wink:
Möge die Python-Community gedeihen
Antworten