Tkinter / Entry widget problem

John McMonagle jmcmonagle at NO.SPAM.velseis.com.au
Tue Jul 14 23:06:18 EDT 2009


Andras Szabo wrote:
> Hello. I searched the archives but couldn't find a solution to a problem
> related to the Entry widget in Tkinter.
> 
> When creating a pop-up window in an app, which contains an Entry widget,
> I want this widget to contain some default string, to have all this
> default string selected (as if the user had manually selected
> everything), and to have the focus transferred to this widget.
> 
> (The idea is then that if the window pops up, the user won't have to
> click or press Tab any more before being able to type what is needed in
> the textbox, overwriting what is written there already.)
> 
> I thought this might be the way to go:
> 
> entrybox=Entry(toplevel_parent_window)
> entrybox.insert(0,"Some default string")
> entrybox.select_range(0,END)
> entrybox.focus_set()
> entrybox.pack()
> 
> But it doesn't seem to work - the focus is not transferred to the Entry
> widget, and the text does not appear to be selected (even though after
> this entrybox.selection_present() returns True).
> 
> What am I doing wrong?
> 
> andras

You're probably not updating after the focus_set.

Try the following:

from Tkinter import *
r = Tk()


def click():
    t = Toplevel(r)
    e = Entry(t)
    e.pack()
    b = Button(t, text='Close', command=t.destroy)
    b.pack()
    e.insert(0, 'Default')
    e.select_range(0, END)
    e.focus_set()
    r.update()



b = Button(r, text='Press', command=click)
b.pack()

r.mainloop()



Regards,

John



More information about the Python-list mailing list