pygtk - events

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Gast

pygtk - events

Beitragvon Gast » Donnerstag 20. Oktober 2005, 07:19

hi leutz!

was ist denn der event-name für die rechte maustaste?

bei "button_press_event" wird der event für beide maustasten ausgelöst


greetz
smoere
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: pygtk - events

Beitragvon gerold » Donnerstag 20. Oktober 2005, 08:09

Anonymous hat geschrieben:was ist denn der event-name für die rechte maustaste?
bei "button_press_event" wird der event für beide maustasten ausgelöst

Hi!

Wenn das Event ausgelöst wurde, dann bekommst du das Widget auf welches geklickt wurde und auch Details über das Event mitgegeben.

Code: Alles auswählen

def on_mywidget_button_press_event(widget, event, data = None):

Ich weiß es jetzt nicht auswendig, aber wenn du das Event mit dir() überprüfst, bekommst du sicher raus, wie du im Code die linke und die rechte Maustaste unterscheiden kannst.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
smoere
User
Beiträge: 4
Registriert: Donnerstag 20. Oktober 2005, 07:16

Beitragvon smoere » Donnerstag 20. Oktober 2005, 09:12

danke für die idee, aber ich glaube nicht, aber irgendwie werde ich aus der ausgabe nicht direkt schlau.

hier genaueres:
self.button.connect("button_press_event", self.aktion)
...
def aktion(self,widget,event):
print dir(event)



und hier die ausgabe, wenn ich mit links klicke:
['axes', 'button', 'copy', 'device', 'free', 'get_axis', 'get_coords', 'get_root
_coords', 'get_screen', 'get_state', 'get_time', 'put', 'send_event', 'set_scree
n', 'state', 'time', 'type', 'window', 'x', 'x_root', 'y', 'y_root']


und dir rechte maustaste:
['axes', 'button', 'copy', 'device', 'free', 'get_axis', 'get_coords', 'get_root
_coords', 'get_screen', 'get_state', 'get_time', 'put', 'send_event', 'set_scree
n', 'state', 'time', 'type', 'window', 'x', 'x_root', 'y', 'y_root']


ich glaube, da fehlt irgendwas beim befehl, bzw es wird ein anderer befehl gebraucht.
aber welcher??


greetz
smoere
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Donnerstag 20. Oktober 2005, 09:42

smoere hat geschrieben:

Code: Alles auswählen

self.button.connect("button_press_event", self.aktion)
...
def aktion(self,widget,event):
   print dir(event)


und hier die ausgabe, wenn ich mit links klicke:
['axes', 'button', 'copy', 'device', 'free', 'get_axis', 'get_coords', 'get_root
_coords', 'get_screen', 'get_state', 'get_time', 'put', 'send_event', 'set_scree
n', 'state', 'time', 'type', 'window', 'x', 'x_root', 'y', 'y_root']

Hi!

:idea:
Jetzt musst du nur noch prüfen, welchen Wert event.button oder event.button() hat. :D

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 20. Oktober 2005, 15:48

Ich habe mir die Freiheit genommen, den Thread unter GTK/GNOME zu verschieben.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
smoere
User
Beiträge: 4
Registriert: Donnerstag 20. Oktober 2005, 07:16

Beitragvon smoere » Donnerstag 20. Oktober 2005, 16:12

alles klar!

ich habs raus:

mit
print event.button

kriegt man die unterscheidung :)

@Leonidas:
sorry, da waren beim erstellen die finger mal wieder schneller als das auge ;P

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder