Bonjour à tous

J'aimerais insérer un widget ComboBox(de tix ou pmw) dans une fenetre ou il y a deja d'autres widgets, mais je n'y arrive pas. Pourtant je n'ai aucune difficulté pour le faire dans une nouvelle fenetre, à part du reste.

Par excemple, ce code fonctionne bien:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
import Tix 
 
def Affiche(evt):
    print varcombo.get() ## On affiche a l'ecran la valeur selectionnee
 
root = Tix.Tk() 
varcombo = Tix.StringVar() 
combo = Tix.ComboBox(root, editable=1, dropdown=1, variable=varcombo, command = Affiche)
combo.entry.config(state='readonly')  ## met la zone de texte en lecture seule
combo.insert(0, 'NT') 
combo.insert(1, 'Linux')
combo.pack()
root.mainloop()
Mais ce code ne fonctionne pas:

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
import Tix
 
def affiche(event):
    print self.default_extension.get()
 
def settings(self):
    self.root=Tk()
    self.root.title('Paramètres')
 
    #implementation des autre widgets
 
    Label(self.root,text='Extension des images:').grid(row=2,column=0,sticky=E)
    self.default_extension=Tix.StringVar()
    #self.default_extension.set(self.dico_sett["extension"])
    combo=Tix.ComboBox(self.root,editable=1,dropdown=1, variable=self.default_extension, command=self.affiche)
    combo.entry.config(state='readonly')
    combo.insert(0, 'jpg')
    combo.insert(1, 'png')
    combo.insert(2, 'bmp')
    combo.grid(row=2,column=0,columnspan=2,padx=3,pady=3)
    combo.grid(row=2,column=0,columnspan=2,padx=3,pady=3)
le message d'erreur est:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python26\lib\lib-tk\Tkinter.py", line 1410, in __call__
    return self.func(*args)
  File "C:\Python26\folder\gen.py", line 612, in settings
    combo=Tix.ComboBox(self.root,editable=1,dropdown=1, variable=self.default_extension, command=self.affiche)
  File "C:\Python26\lib\lib-tk\Tix.py", line 579, in __init__
    cnf, kw)
  File "C:\Python26\lib\lib-tk\Tix.py", line 307, in __init__
    self.tk.call(widgetName, self._w, *extra)
TclError: invalid command name "tixComboBox"
Franchement je ne vois pas pourquoi il ne reconnaît pas Tix.ComboBox dans le deuxième exemple, pour moi c'est la même chose que ce soi dans une fenêtre à part ou dans une fenêtre existante :s

Pouvez-vous éclairer ma lanterne?

Merci d'avance