2017/06/05 06:56 1/4 Comment utiliser simultanément Pygame et Tkinter
Informatique, Programmation, Python, Enseignement... - https://deptinfo-ensip.univ-poitiers.fr/ENS/doku/
Comment utiliser simultanément Pygame et
Tkinter
Pygame possède sa propre boucle de gestion des événements, ainsi que Tkinter. Pour avoir à la fois
une fenêtre Pygame et Tkinter, voici trois solutions.
ouvrir la fenêtre pygame. Puis, si besoin ouvrir la fenêtre tk qui bloque la fenêtre pygame1.
jusqu'à sa fermeture.
appeler le gestionnaire d'événements (update) de tk dans la boucle de pygame. On pourrai2.
taussi faire l'inverse, mais je ne le présente pas ici
lancer l'interface tk dans un thread à part. Le résultat est très simple, bien que la solution soit3.
très technique.
La meilleur solution, si on veut que les deux fenêtres répondent est celle avec les threads (dans la
seconde solution le flash su bouton ralentit l'animation de la fenêtr pygame).
Si en outre, on veut, dans pygame, déclencher l'apparition d'une fenêtre contenant du texte (mode
d'emploi par exemple), alors, la première solution est sans doute la meilleure.
Solution 1
prog1.py
# Utiliser PyGame et Tk ensemble
# ===============================
# PROGRAMME 1
# -----------
# Dans cette version, la fenêtre Tk est ouverte lorsqu'on appuie sur la
barre
# d'espace dans la fenêtre PyGame. L'exécution de la fenêtre Tk bloque
l'exécution
# de la fenêtre PyGame, qui reprendra lorsqu'on refermera la fenêtre Tk
import pygame
import tkinter as tk
# Variable globale pour stocker la position de la bille animée
pos_vit=[100,100,0.3,-0.5]
# Variable contenant les coordonnées des points cliqués
liste_points=[]
# Animation dans la fenêtre PyGame
def animation(screen) :
pos_vit[]+=pos_vit[2]
pos_vit[1]+=pos_vit[3]
if pos_vit[]< or pos_vit[]>=screen.get_width() :