tkFileDialog question

J

jaime.suarez

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()
 
J

James Stroud

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

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/
 
J

James Stroud

Oops,

That should have been,


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.button1.configure(text="...")
self.button1.grid(row=0, column=2)
self.button1.bind("<Return>", self.button1Click)

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


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/
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,989
Messages
2,570,207
Members
46,783
Latest member
RickeyDort

Latest Threads

Top