temporisation d'affichage
Citation de Arabord le 8 septembre 2025, 14 h 16 minBonjour,
je voudrais ajouter une temporisation d'affichage dans une boucle : je fais tourner une boucle qui affiche un point aléatoirement choisi, et je voudrais voir chaque point s'afficher successivement, juste après sa création. Pour l'instant, je vois l'affichage complet en tous les points en en fin de boucle, en une seule fois. Comment faire?
Merci
Bonjour,
je voudrais ajouter une temporisation d'affichage dans une boucle : je fais tourner une boucle qui affiche un point aléatoirement choisi, et je voudrais voir chaque point s'afficher successivement, juste après sa création. Pour l'instant, je vois l'affichage complet en tous les points en en fin de boucle, en une seule fois. Comment faire?
Merci
Citation de dominator le 11 septembre 2025, 17 h 16 minBonjour,
Pardon pour le retard !
Vous n'avez pas donner le code pour l'examiner! Mais quand même je peut vous répondre du moment qu'il s'agit d'un problème classique lié à la bibliothèque Tkinter qui ne rafraîchit pas l'affichage pendant l'exécution d'une boucle. Voici une solution qui marche bien que j'ai testé :
import tkinter as tk import random def afficher_point(i=0): if i < 100: x = random.randint(0, 400) y = random.randint(0, 400) canvas.create_oval(x-2, y-2, x+2, y+2, fill='black') root.after(50, afficher_point, i+1) # 50ms de délai root = tk.Tk() canvas = tk.Canvas(root, width=400, height=400) canvas.pack() afficher_point() root.mainloop()Si vous rencontrez des problèmes n'hésitez pas à les poser ici! Bonne chance!
Bonjour,
Pardon pour le retard !
Vous n'avez pas donner le code pour l'examiner! Mais quand même je peut vous répondre du moment qu'il s'agit d'un problème classique lié à la bibliothèque Tkinter qui ne rafraîchit pas l'affichage pendant l'exécution d'une boucle. Voici une solution qui marche bien que j'ai testé :
import tkinter as tk
import random
def afficher_point(i=0):
if i < 100:
x = random.randint(0, 400)
y = random.randint(0, 400)
canvas.create_oval(x-2, y-2, x+2, y+2, fill='black')
root.after(50, afficher_point, i+1) # 50ms de délai
root = tk.Tk()
canvas = tk.Canvas(root, width=400, height=400)
canvas.pack()
afficher_point()
root.mainloop()
Si vous rencontrez des problèmes n'hésitez pas à les poser ici! Bonne chance!