[Python-de] Newbie: Solange Mousebutton gedrückt

Martin v. Loewis martin at loewis.home.cs.tu-berlin.de
Fri Mar 9 22:33:28 EST 2001


> im Konstruktor habe ich die Erfassung vom MouseClick:
> 
> EVT_LEFT_DOWN(panel,self.OnLeftMouse)
> 
> dann habe ich die Funktion selbst:
> 
> def OnLeftMouse(self,event):
>         maus = wxMouseEvent(wxEVT_LEFT_DOWN)
>         while maus.LeftIsDown():
> 	 print "."
> 
> Aber das funktioniert leider nicht, das Programm läuft, aber es printet
> nicht. 

Ereignisorientierte Programmierung geht so nicht. Das GUI-System
"generiert" Ereignisse, die dann behandelt werden müssen. Tatsächlich
muss man dazu die Ereignisse allerdings abholen - wenn also die
wxWindows-Ereignisschleife nicht vorwärts kommt, kommen keine
Ereignisse an, und niemand bekommt mit, ob die Maus losgelassen wurde
oder nicht.

Ich empfehle, zwei Eventhandler zu installieren, einen beim Drücken,
einen beim Loslassen. Will man, das zwischendurch noch was passiert,
wird es schwierig: Wie oft soll denn das passieren? Alle 10ms, oder
nach jedem Ereignis, oder noch häufiger?

Ciao,
Martin




More information about the Python-de mailing list