Salut les Pythons,
Je n'arrive pas a effacer des widget restaurer avec des nouvelles instances et avec la une méthode d'insertion analogue, après effacage. Dans le dico ou j'ai mes nouvelles instances (restaurer) sont de type None: Quand j'appelle la variable elles y sont les nouvelles instances mais quand je fait:
il s'affiche
Code : Sélectionner tout - Visualiser dans une fenêtre à part print dico_new_instance.keys()
J'en déduit que les instances sont de type None (morte) et donc plus manipulable, pour la suite de mon programme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part []
le programe suivant simplifie mon problème (et marche lui) et vous guide sur ma marche a suivre dans un programme plus complexe oû peut etre les instances meurent car il fait 2000 lignes:
Sa serai sympa de m'aider si vous saissisez mon problè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
31
32
33
34
35
36
37
38
39
40
41
42 # -*- coding: utf-8 -*- from Tkinter import * def test_1() : global b instances={}#normalement dans le contructeur de la classe var=IntVar() chk=Checkbutton(b, text="test", variable=var).pack() restore.append('test_2') instances[chk]='valeur' b.window_create(END, window=chk) def test_2() : global b for values in b.winfo_children() : #print instances.keys() donne: #[] values.destroy() def test_3() : global b instances={}# initialiser après reinstanciation for values in restore : var=IntVar() chk=Checkbutton(b, text=values, variable=var) instances[chk]='valeur' b.window_create(END, window=chk) restore=[] a=Tk() b=Text(a) c=Button(a, text='Afficher', command=test_1) d=Button(a, text='Effacer', command=test_2) e=Button(a, text='Restaurer', command=test_3) b.pack() c.pack() d.pack() e.pack() a.mainloop()
Partager