Le sixième exemple minimal dans la programmation d'interfaces graphiques en Python 3, Gtk 3 et PyGObject montre comment récupérer les évènements créés par la souris : clicks et roulette.
#!/usr/bin/env python # jps le 27 septembre 2024 # ---------------------------------------------------- import gi gi.require_version("Gtk", "3.0") from gi.repository import Gtk, Gdk # ---------------------------------------------------- class MainWindow(Gtk.Window): # ---------------------------------------------------- def __init__(self): super().__init__(title="Souris") self.set_default_size(100, 100) self.set_border_width(20) # création du bouton my_button = Gtk.Button(label="Mon bouton") self.add(my_button) # récupération des clicks my_button.connect("button_press_event", self.click) # récupération de la roulette self.set_events(Gdk.EventMask.ALL_EVENTS_MASK) self.connect("scroll-event", self.wheel) def click(self, widget, event): if event.button == 1: print("Left click") elif event.button == 2: print("Middle click") elif event.button == 3: print("Right click") if event.type == Gdk.EventType._2BUTTON_PRESS : print("Double click") def wheel(self, widget, event): direction = event.get_scroll_direction() if direction[0] == True : if direction.direction == Gdk.ScrollDirection.DOWN: print ("Wheel down") else : print ("Wheel up") # ---------------------------------------------------- main = MainWindow() main.connect("destroy", Gtk.main_quit) main.show_all() Gtk.main()
On affiche un simple et unique bouton dans une fenêtre. Le programme récupère les clicks sur le bouton et les mouvements de la roue de la souris pour les afficher dans le terminal :
Left click Middle click Right click Left click Left click Double click Wheel down Wheel up
C'est le septième article consacré à la programmation Python, GTK et PyGObject. Les six premiers :
Articles (304)
Je préfère vraiment les contacts à l'ancienne, par courrier électronique à l’adresse jpsmail(at)free.fr. Antispam : penseras-tu à remplacer (at) par @ dans l’adresse ? Que cela ne t'enpêche pas d'ajouter un commentaire :