Bonjour,

J'ai besoin de créer un certain nombre de bouton radio et d'en sélectionner un automatiquement.
Pour cela j'utilise Le problème c'est que malgré cette commande rien ne se passait. J'ai fini par ajouter mainloop() et ça fonctionnait.
Le hic c'est que ces boutons sont créés avec une boucle de init() et lorsque la boucle recommence il y a une erreur comme quoi la fenêtre est détruite et j'imagine que c'est à cause de mainloop().

voici le code
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
 
for i in range(repet):
        objet = CreaMots(i, result[0][i][1], result[0][i][0], result[1][i][1], result[1][i][0])
 
class CreaMots():
    def __init__(self, index, mot1, type1, mot2, type2, repet = 0):
        """création d'un objet représentant un mot
 
        Args:
            index (int): place du mot dans la liste
            repet (int): nombre de fois où la personne a travaillé ce mot
            mot1 (string): le mot numéro 1 sans déterminant
            type1 (string): chaine de caractères représentant le type du mot
            mot2 (string): le mot numéro 2 sans déterminant
            type2 (string): chaine de caractères représentant le type du mot
        """
        self.index=index
        self.repet= repet
 
        self.mot1=mot1
        self.type1=type1
 
        self.mot2=mot2
        self.type2=type2
 
        CreaMots.liste_mots.append(self)
 
        self.crea_ligne_objet()
 
 
    def crea_ligne_objet(self):
        """permet de créer l'interface pour faire soi même des listes de vocabulaire en entrant un mot et possiblement son genre (NM, NF, NN, Autre)
        """
        ligne_widget = []
        langues = CreaMots.liste_mots[0]
        objet = [self.index, self.mot1, self.type1, self.mot2, self.type2]
        CreaMots.modif_listes.append(self)
        for i in enumerate(CreaMots.Bts_pop_langue):
            i[1].grid(row = 0, column = (i[0]+1)**2)
 
        Lb_num = Label(CreaMots.Fr_analyse, bg = 'white', fg = 'black', text = str(self.index) , font = ('Impact', 15))
        Lb_num.grid(row = self.index+1, column = 0, padx = 10)
        ligne_widget.append(Lb_num)
 
        vars = [StringVar(), StringVar()]
        for j in range(2):
            lieu = j*3 # défini une valeur permettant de bien placer les widgets lors de la 1ere et 2eme itération
 
            #entry avec un mot 
            Ent_langue = Text(CreaMots.Fr_analyse, width = 30, height = 2)
            Ent_langue.insert(END, objet[j*2+1])
            Ent_langue.grid(row = self.index+1, pady = 5, column = lieu+1, padx = 15)
 
            #boutons ermettant de selectionner le genre du mot
            genre_langue = {'français' : ('NM', 'NF'), 'allemand' : ('NM', 'NF', 'NN')}
            langue = langues[j]
            choix_nature_mot = []
            if langue in genre_langue:
                Fr_nature_mot = Frame(CreaMots.Fr_analyse, bg='brown')
                Fr_nature_mot.grid(row = self.index+1, pady = 10, column = lieu + 2, padx = 10)
                for k in range(len(genre_langue[langue])):
                    nature_mot = Radiobutton(Fr_nature_mot, indicatoron = 0, text =genre_langue[langue][k], variable = vars[j], value = k)    
                    nature_mot.grid(row = 0, column = k)
                    choix_nature_mot.append(nature_mot)
 
                nature_mot = Radiobutton(Fr_nature_mot, indicatoron = 0, text = 'Autre', variable = vars[j], value = len(genre_langue)+1)
                nature_mot.grid(row = 1, column = 0, columnspan=len(genre_langue[langue]))
                choix_nature_mot.append(nature_mot)
 
                # selectionne par defaut un bouton radion
                for l in choix_nature_mot:
                    if objet[(j+1)*2] == l['text']:
                        l.select()
 
            #sépart deux colones de langue
            fleche_separ = Label(CreaMots.Fr_analyse, image=Wid.double_fleche, bd=0) #séparation entre les mots des 2 langues par une double fleche
            fleche_separ.grid(row = self.index+1, pady = 10, column = 3)
 
 
            #creation liste repertoriant une ligne de widget
            ligne_widget.append(Ent_langue)
            ligne_widget.append(choix_nature_mot)
 
        #label equilibrant pour mettre au milieu
        Lb_espace = Label(CreaMots.Fr_analyse, bg = 'brown', width=5)
        Lb_espace.grid(row = self.index+1, column = 6)
        ligne_widget.append(Lb_espace)
Le code est énorme donc je n'ai pas tout mis.
Y a-t-il un autre moyen d'actualiser la page ou de sélectionner un bouton ?

Merci d'avance pour votre aide