Exemple minimal PyGObject : récupérer les clicks et la roulette de la souris

Jean-Pierre Bucciol

27 sept 2024

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 :

medias/2024/09/python-ex-min-6-image-1-f

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 :

← Article précédent
Exemple minimal PyGObject : les raccourcis claviers, sep 2024
Article suivant →
Installation de Void Linux, oct 2024

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 :

Nom :

Commentaire :

Articles (304)

   (*: nécessite un mot de passe.)
↑ Retour en haut de la page