Seite 1 von 1

Mehrere Events auf einen Widget

Verfasst: Montag 8. September 2003, 07:58
von Andi
hallo zusammen,

wieso kann ich per tag_bind nicht mehrere Events auf ein Widget "klatschen". Also ungefähr so:

Code: Alles auswählen

                  self.tag_bind(self.images[len(self.images)-1],"<Double-1>",lambda e, tN=tmpNode: self.callCallback(node=tN))                     
                  self.tag_bind(self.images[len(self.images)-1],"<Button-1>",lambda e, tN=tmpNode: self.setSelectedNode(tN,action="RESET",tree=tree))
Im Grunde wird immer die Bindung mit Button-1 ausgeführt.
Button-Double-1 als Event funktioniert auch nicht, obwohl ich immer dachte das detailiertere Events bevorzugt behandelt werden, oder etwa nicht?


Danke für eure Hilfe im voraus

mfg andi

Re: Mehrere Events auf einen Widget

Verfasst: Montag 8. September 2003, 08:46
von Voges
Hallo!

Hm, also ich kenne keine GUI, die Klick und Doppelklick beim selben Control ermöglicht. Wie soll das auch gehen? Dann müsste ja die GUI nach jedem Klick erstmal warten, ob nicht noch ein zweiter kommt, und bei Windows z.B. kann ich eine Doppelklickgeschwindigkeit von gut einer Sekunde einstellen. Das hieße, dass der Anwender nach jedem Einfachklick eine Sekunde warten muss, bis es weitergeht.

Irgendwie nachbilden könnte man sowas schon. Bei Editoren ist es häufig z.B. so, dass ein Einfachklick den Textcursor positioniert, ein Doppelklick das Wort unter dem Cursor markiert und ein Dreifachklick die ganze Zeile. Ich vermute mal, dass dazu die Zeitspannen zw. den Einfachklicks auswertet werden.

Jan

Re: Mehrere Events auf einen Widget

Verfasst: Montag 8. September 2003, 10:53
von Kartoffel
Voges hat geschrieben:Hallo!

Hm, also ich kenne keine GUI, die Klick und Doppelklick beim selben Control ermöglicht. Wie soll das auch gehen? Dann müsste ja die GUI nach jedem Klick erstmal warten, ob nicht noch ein zweiter kommt, und bei Windows z.B. kann ich eine Doppelklickgeschwindigkeit von gut einer Sekunde einstellen. Das hieße, dass der Anwender nach jedem Einfachklick eine Sekunde warten muss, bis es weitergeht.
Naja, schon beim Windows desktop ist es doch so, einmal klicken markiert, zweimal klicken öffnet. Das sind ja zwei verschiedene Sachen.
Oder hab ich da was falsch verstanden?

Zur Problemlösung hab ich leider auch nichts anzubieten :?

Re: Mehrere Events auf einen Widget

Verfasst: Montag 8. September 2003, 11:55
von Voges
Kartoffel hat geschrieben:Naja, schon beim Windows desktop ist es doch so, einmal klicken markiert, zweimal klicken öffnet. Das sind ja zwei verschiedene Sachen.
Stimmt, das Beispiel ist deutlich naheliegender. Es gibt tatsächlich 'ne Menge Beispiele, musste ich feststellen (macht man sich in der Regel bei der Bedienung keine Gedanken drüber). Aber die wurden sicherlich nicht mit den einfachen KLick- und Doppelklick-Events realisiert. Beim CListCtrl (z.B. im Windows Explorer) der MFC zum Beispiel wird auch auf Klick und Doppelklick reagiert, zumindest vordergründig. Tatsächlich wird nicht auf den Klick-Event reagiert, sondern auf ein Event, der ausgelöst wird, wenn sich die Selection/Auswahl geändert hat. Der Event ist auch nicht auf die Maus beschränkt, sondern kann auch durch die Cursor-Tasten ausgelöst werden.
Jan