1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
"""
Programme pour comprendre l'utilisation de after()
Essai avec des StringVar() --> Exactement le même problème :
La fenêtre ne s'ouvre que tout à la fin
Je ne souhaite pas utiliser l'heure car dans mon vrai programme, seul le temps relatifs (les intervalles) m'intéresseront
"""
import tkinter as tk
root = tk.Tk()
root.title("Exemple d'utilisation de after()")
root.geometry("300x70")
semaine = ["lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche"]
label1_vc = tk.StringVar(value = "Jour de la semaine")
label2_vc = tk.StringVar(value = "Événement")
# Créer une vignette (label) pour afficher le texte
label1 = tk.Label(textvariable = label1_vc)
label1.pack(pady=5)
# Créer une vignette (label) pour afficher le texte
label2 = tk.Label(textvariable = label2_vc)
label2.pack(pady=5)
cumul = 1000
def aqua_prog(jour):
global cumul # Je n'aime global, il faudra trouver comment s'en débarasser après.
# Fonction pour mettre à jour l'étiquette
def update_text(new_text):
label1_vc.set(f"Nous sommes {jour}.")
label2_vc.set(new_text)
root.after(cumul, update_text, "Allumage de l'aquarium")
cumul = cumul + 2000 # Les valleurs ajoutées (intervalles) seront des variables rassemblées dans un tableau
# Les poissons ne sont pas nourris les mercredis et les dimanches
if jour == "mercredi" or jour == "dimanche":
root.after(cumul, None)
cumul = cumul + 2000
else:
root.after(cumul, update_text, "Nourrissage des poissons")
cumul = cumul + 2000
root.after(cumul, update_text, "Extinction de l'aquarium")
cumul = cumul + 2000
for i in semaine:
aqua_prog(i)
root.mainloop() |
Partager