Comment insérer un ComboBox dans une fenetre existante?
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:
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:
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:
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 ;)