Écrire des programmes qui réagissent aux clics de souris ou aux mouvements de la souris. Ce concept de programmation est notamment utilisé dans les programmes ayant une interface graphique utilisateur.
EXEMPLES
Pour les événements de la souris, on utilise la technique de programmation suivante: On définit dans une fonction (la fameuse fonction de rappel, ou callback) ce qui doit se passer lors de l'appui sur un bouton de la souris. Cette fonction n’est jamais appelée explicitement dans ton propre code, mais est automatiquement appelée par le système lorsqu’un événement de souris se produit. Pour cela, il faut informer le système de son nom. On appelle cela enregistrer le callback.
Example 1: Dessiner des cercles avec les clics de souris La fonction callback onMousePressed(x, y)dessine un petit cercle à la position du clic. Cette fonction est enregistrée lors de l’appel de makeGPanel() via un paramètre nommémousePressed = onMousePressed registriert.
Le nom de la fonction callback peut être choisi librement. Le nom du paramètre nommé, par lequel la fonction callback est enregistrée dans makeGPanel(), doit toutefois être mousePressed ou mouseClicked.
Example 2: Capturer un mouvement de la souris Un callback enregistré avec le paramètre mouseMoved réagit aux mouvements de la souris. S’il est enregistré avec le paramètre mouseDragged, il réagit aux mouvements de la souris avec le bouton enfoncé.
Dans l’exemple, des dessins amusants en forme de tubes apparaissent lors d’un déplacement avec le bouton enfoncé.
Example 3: Dessiner avec le bouton enfoncé Avec les événements de souris, on peut créer un simple programme de dessin. On utilise la fonctiondraw(x, y) qui, à chaque appel de la fonction callback onMouseDragged(), trace une ligne vers la position actuelle de la souris (et place le curseur graphique sur x, y). Le callback onMousePressed()est nécessaire pour repositionner le curseur graphique à la position actuelle de la souris.
Les deux callbacks sont enregistrés en même temps lors de la création du GPanel avec des paramètres nommés.
Dans l’exemple, tu dessines d’abord une grille 8x8. Ensuite, avec des clics, tu peux remplir les cases de la grille avec la fonction fill(x, y, "white", "red") "white", "red") en colorant en rouge, où (x, y) est la position du clic, white est l’ancienne couleur et red la nouvelle couleur.
Programme:
# Gp9d.pyfrom gpanel import *
def drawGrid():
for k in range(8):
for i in range(8):
rectangle(i, k, i + 1, k + 1)
def onMousePressed(x, y):
fill(x, y, "white", "red")
makeGPanel(-1, 9, -1, 9, mousePressed = onMousePressed)
drawGrid()
Example 5: Utiliser le clic gauche et le clic droit
Avec le clic gauche, les carrés deviennent rouges; avec le clic droit, la marquage est effacé. isLeftMouseButton(): Renvoie True si le bouton gauche est enfoncé.
isLeftMouseButton(): Renvoie True si le bouton gauche est enfoncé.Renvoie True si le bouton droit est enfoncéGibt True zurück, wenn die rechte Maustaste gedrückt wurde
Programme:
# Gp9e.pyfrom gpanel import *
def drawGrid():
for k in range(8):
for i in range(8):
rectangle(i, k, i + 1, k + 1)
def onMousePressed(x, y):
if isLeftMouseButton():
fill(x, y, "white", "red")
if isRightMouseButton():
fill(x, y, "red", "white")
makeGPanel(-1, 9, -1, 9, mousePressed = onMousePressed)
drawGrid()
Dans une callback function, vous définissez ce qui doit se produire lorsque le bouton de la souris est enfoncé ou lorsque la souris est déplacée. Cette fonction n’est pas appelée par le programme, mais directement par le système lorsqu’un tel événement se produit. La callback doit être enregistrée lors de la création du GPanel.
L’appui d’un bouton de la souris peut être capté par deux callbacks différents: un événement Press (pression) ou un événement Click (clic). L’événement Click se déclenche seulement après que le bouton a été relâché; l’événement Press se produit lors de l’appui du bouton. L’événement Click est enregistré avec le paramètre mouseClicked.
Le déplacement de la souris est enregistré avec le paramètre mouseMoved ou avec le paramètre mouseDragged (déplacement avec bouton de la souris enfoncé).
À FAIRE PAR TOI-MÊME
1)
À la position du clic de souris, se forme un petit point et une ligne vers le point précédent.
2)
Dans le chapitre Fonctions, tu as appris à dessiner des étoiles. À chaque clic, une étoile doit apparaître à la position de la souris.
3)
Programme un jeu de Tic-Tac-Toe simple. Deux joueurs dessinent alternativement des carrés rouges et verts dans le but d’aligner une ligne, une colonne ou une diagonale.