Hi Anil, A pure Tkinter dropdown box: click on a button and a menu drops down, allowing you to select. If you specify a callback function, this is called when you make a selection:
from Tkinter import * import os, sys # SelecteButton Class - creates a button which when clicked on gives a popup menu. # if the callback arg is given, this is a function called when a selection is made, expecting the # selected option as arg # The value can be accessed by asking the widget for its x.selected attribute. # Coded Mick O'Donnell [EMAIL PROTECTED] class SelectButton(Label): def __init__(self, parent, options, callback=None, default=None, **otherKeys): Label.__init__(self, parent, bg="white", relief="raised", bd=2, **otherKeys) self.options=options self.callback=callback self.oldGrab=None if default==None: default=self.options[0] self.bind("<Button-1>", self.showOptions) self.setOption(default, False) def setOption(self, selected, docallback=True): self.selected=selected self["text"]=selected if docallback and self.callback: self.callback(selected) def showOptions(self, event): menu=Menu(None, tearoff=0) for option in self.options: menu.add_command(label=option, command= lambda lab1=option: self.setOption(lab1)) menu.post(event.widget.winfo_rootx(), event.widget.winfo_rooty()) if os.name =="posix" and sys.platform != "darwin": menu.grab_set() # DEMO if __name__ == '__main__': def showSelected(label): print "You selected: ", label tk = Tk() ssw = SelectButton(tk, ['1','2','3','4','5'], callback=showSelected, default=str(2)) ssw.pack(side=TOP, expand=TRUE, fill=BOTH) tk.mainloop() _______________________________________________ Tkinter-discuss mailing list Tkinter-discuss@python.org http://mail.python.org/mailman/listinfo/tkinter-discuss