Bonjours,
Pour notre projets d'ISN nous avons décidé de faire un logiciel question/réponse. Et nous bloquons sur notre programme : nous avons une première fenêtre d'acceuille (fen1) qui s'ouvre. Lorsqu'on appuie sur un bouton une deuxième fenêtre (fen2) s'ouvre dans lequel on a nos question/réponse qui sont aléatoire. Elle se trouve dans une fonction.
Mais nous n'arrivons pas à trouver quelque chose pour que quand on appuie sur un bouton valider (dans fen2) celle ci se détruise et que la même fenêtre réapparaisse (avec du coup, une nouvelle question). C'est pour faire plusieurs questions d'affilé.

Nous avons déjà essayé les boucles simple comme "for i in range..." ou "while" mais ça ne supprime pas l'ancienne fenêtre.
On a aussi essayé la fonction "repeat" sauf que ça affiche la deuxième fenêtre en premier pour finalement refaire le programme initial avec le même problème une fois les répétitions faite et donc ce n'est pas ce qu'on veux.

Nous somme un peu désespéré de trouver une solution, merci d'avance de nous répondre.

Voici notre programme simplifié :
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
from random import*
from tkinter import*
 
 
 
def svtch1 ():    #deuxième fenetre ouverte
 
    fen2=Tk()
 
 
    textq1=Label(fen2, text="Question", fg="grey")
    textq1.pack()
    textq1.grid(row=1,column=0,columnspan=10)
 
    Réponse1 = Checkbutton(fen2, text="Réponse 1",fg="red")  #Affiché une coche du QCM
    Réponse1.pack()
    Réponse1.grid(row=2,column=1)
    Réponse2 = Checkbutton(fen2, text="Réponse 2",fg="red") 
    Réponse2.pack()
    Réponse2.grid(row=3,column=1)
    Valider= Button(fen2,bg="white",height=1,width=18, text="Valider votre réponse",fg="orange")
    Valider.pack()
    Valider.grid(row=4,column=1,columnspan=3)
 
    fen2.mainloop()
 
 
fen1=Tk()
svt1=Button(fen1,width=10, height=2,text="SVT",bg='green',borderwidth=5,command=svtch1)
svt1.grid(row=4, column=1, columnspan=2)
 
 
fen1.mainloop()  # fin programme