Bonjour,
Je souhaite permettre à l'utilisateur d'ajouter un élément à un combobox. Il clique sur un bouton à côté, une fenêtre de dialogue s'ouvre lui demandant d'entrer un nouveau thème.
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
 
class FenetreAjouterTheme (Toplevel):
    def __init__(self,couleur,liste):
        Toplevel.__init__(self,bg="black",bd=2)
 
        self.listethemes = liste
        self.container = Frame(self,bg=couleur)
        self.lbl_nouveau_theme = Label(self.container,text="Veuillez entrer ci-dessous un nouveau thème :",bg=couleur).grid(row=0,column=0,sticky="w")
        self.saisie_nouveau_theme = Entry(self.container,font="Arial 10",width=40)
        self.saisie_nouveau_theme.grid(row=1,column=0)
        self.fen_boutons = Frame(self.container,bg=couleur)
        self.btn_valider_nouveau_theme = Button(self.fen_boutons,text="Valider",command=self.valider)
        self.btn_valider_nouveau_theme.grid(row=0,column=0,padx=20,pady=20)
        self.btn_Annuler_nouveau_theme = Button(self.fen_boutons,text="Annuler",command=self.annuler)
        self.btn_Annuler_nouveau_theme.grid(row=0,column=1)
        self.fen_boutons.grid(row=2,column=0)
        self.container.pack()
 
    def valider(self):
        test="valide"
        for e in self.listethemes:
            if(e==self.saisie_nouveau_theme.get()):
                showerror("Saisie d'un nouveau thème", "Ce thème est déjà dans la liste")
                test="non valide"
        if (test=="valide"):
            self.listethemes.append(self.saisie_nouveau_theme.get())
            self.destroy()
 
    def annuler(self):
        self.destroy()
Ces lignes de code concernent ma fenêtre dans laquelle la personne entre un nouveau thème.
J'ai appelé lors de la construction une liste qui contient les éléments de mon combobox.
Je vérifie si ce qui est entré n'est pas présent dans la liste et dans ce cas j'ajoute dans la liste variable de mon objet FenêtreAjouterTheme.
Le souci est: comment faire passer cette liste à mon combobox présent dans une autre fenêtre?
Je mets ci-dessous le code qui ouvre ma fenêtre de dialogue, j'imagine que tout se joue dans cette partie. Pour info le nom du combobox est "self.cbx_themes".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
def ajouter_theme(self):
        self.fenetre_saisie_nouveau_theme = FenetreAjouterTheme('#DCDCDC',self.liste_themes)
        centrer(fen=self.fenetre_saisie_nouveau_theme,w=288,h=111)
        self.fenetre_saisie_nouveau_theme.overrideredirect(1)
        self.fenetre_saisie_nouveau_theme.grab_set()
        self.fenetre_saisie_nouveau_theme.focus_set()
J'ai pensé à un self.liste.themes=self.fenetre_saisie.nouveau_theme.listethemes mais sans succes.
Bref si quelqu’un a une idée je suis preneur. En espérant avoir été clair.
Merci par avance.