tkFileDialog question

James Stroud jstroud at mbi.ucla.edu
Thu May 12 21:17:06 EDT 2005


I think you are better off not binding a button like you are doing.
Use the "command" option to get the behavior you want. E.g:

class MyApp:
        def __init__(self, parent):
                self.myParent = parent
                self.myContainer1 = Frame(parent)
                self.myContainer1.pack()

                self.entry = Entry(self.myContainer1)
                self.entry.grid(row=0,column=0, columnspan=2)
                self.button1 = Button(self.myContainer1,
                        command=(lambda: self.button1Click(self)))
                self.button1.configure(text="...")
                self.button1.grid(row=0, column=2)
                self.button1.bind("<Return>", self.button1Click)

        def button1Click(self, event):
                filePick = tkFileDialog.askopenfilename()


James

On Thursday 12 May 2005 03:43 pm, jaime.suarez at crossmatch.net wrote:
> I am creating a very simple GUI with one Entry widget and
> one Button.  The purpose of the Button widget is to Browse for
> a file using tkFileDialog.askopenfilename().
>
> I bind the button to a handler which spawns a tkFileDialog. This
> works but the button __stays depressed__ after the handler returns!
> Any ideas why?
>
> class MyApp:
> 	def __init__(self, parent):
> 		self.myParent = parent
> 		self.myContainer1 = Frame(parent)
> 		self.myContainer1.pack()
>
> 		self.entry = Entry(self.myContainer1)
> 		self.entry.grid(row=0,column=0 columnspan=2)
>
> 		self.button1 = Button(self.myContainer1)
> 		self.button1.configure(text="...")
> 		self.button1.grid(row=0, column=2)
> 		self.button1.bind("<Button-1>", self.button1Click)
> 		self.button1.bind("<Return>", self.button1Click)
>
>
> 	def button1Click(self, event):
> 		filePick = tkFileDialog.askopenfilename()

-- 
James Stroud
UCLA-DOE Institute for Genomics and Proteomics
Box 951570
Los Angeles, CA 90095

http://www.jamesstroud.com/



More information about the Python-list mailing list