Bonjour à tous,
Alors voici mon problème, je travaille sur un programme de ramassage de devoir aléatoire pour notre projet de spécialité ISN. Je souhaite créer un affichage qui permet de faire défiler des noms en les affichant puis en les effaçant (comme une machine de casino), cependant quand j'appuie sur le bouton lançant le programme, on ne m'affiche que la fin. Comment faire ? Voici le programme (ne tenez pas compte des commentaires, je n'ai pas fini) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
from tkinter import *
from random import *
from time import *
 
 
f=open('liste élèves.txt','r')   ### OUVERTURE DU FICHIER EN MODE READ
liste_eleve=[]                   ### On déclare la liste des élèves et la liste des élèves choisis
liste_elus=[]
for i in f:                      ### Pour chaque nom d'élève dans le fichier
    i=i.replace('\n','')         ### On enlève les retours à la ligne (ou \n)
    liste_eleve.append(i)        ### Et on ajoute chaque nom dans la liste liste_eleve
 
### on définit la fonction défilement, défilant les noms des élèves et qui s'arrete au nom de l'élève choisit
def defilement():
 
    pl=295
    n=int(texte.get())           ### on définit n le nombre de devoirs entré dans l'entrée
### pour chaque devoir à ramasser, on exécute l'algorithme suivant
    for i in range(n):
        h=choice(liste_eleve)    ### h est définit comme le nom tiré au hasard
    ### pour chaque élève dans la liste, on affiche chaque nom et le programme s'arrête quand le nom tiré au hasard est affiché
        for u in range(0,len(liste_eleve)):
            lbl1.pack()
            lbl1['text']=liste_eleve[u]
            lbl1.place(x=75,y=100)
            sleep(0.2)
            lbl1.pack_forget()
            sleep(0.2)                               
            if liste_eleve[u]==h:
                break            ### break ici arrête le programme si le nom affiché est le nom choisi au hasard
        liste_eleve.remove(h)    ### on enlève de la liste d'élève le nom choisi et on le rajoute à la liste des élus
        liste_elus.append(h)
        lbl=Label(top, text=h, font=("Arial",8, "bold italic"), background="black", fg="red").place(x=10,y=pl)   ### on met chaque élève dans un label
        pl=pl+15
 
    for nom in liste_elus:
        liste_eleve.append(nom)
 
 
 
def recommencer():
    can=Canvas(top, width="370",height="220", background="black", bd=0).place(x=0,y=290)
 
 
### à partir de là, on crée l'affichage qui doit afficher à la façon d'un jackpot les noms des élèves et s'arrête au nom de l'élu
top= Tk()
top.geometry("372x550+500+200")
top.title("Programme de ramassage de devoir")
top.resizable(width=False,height=False)
 
img = PhotoImage(file = "jackpot.png")
lebel = Label(top, image = img)
lebel.place(x="0",y="0")
 
 
def action():
    canvas.coords(texte,"225","75")
 
 
canvas=Canvas(top, width="372", height="310", background="black")
canvas.place(x='0',y='200')
texte=canvas.create_text("170","80",text="Le(s) nom(s) de(s) l'élève(s) dont le devoir est à ramasser est (sont):", font="Arial 8",fill="white")
texte2=canvas.create_text("120","20",text="Entrez le nombre de devoirs à ramasser:", font="Arial 10",fill="white")
can1=Canvas(top, width="370",height="220", background="black").place(x=0,y=290)
can2 = Canvas(top, height = 100, width = 225, bg = 'gold').place(x=75,y=60)
lbl1=Label(can2, font=("Arial",10, "bold italic"))
 
 
typ=IntVar()
 
label=Label(top)
 
 
label['fg']='blue'
label.place(x='00',y='530')
 
texte = Entry(top,width=3, font=("arial",20),textvariable=typ)
texte.place(x="10",y="230")
 
 
bouton1= Button(top, text="Lancer",command=defilement).place(x=100,y=235)    
Bouton_recommencer=Button(top, text='Réinitialiser', command=recommencer).place(x=170,y=235)
BoutonQuitter= Button(top, text='Quitter', command=top.destroy)
BoutonQuitter.place(x=160,y=520)
 
f.close()                       ### FERMETURE DU FICHIER
top.mainloop()
Merci d'avance, Nicolas