focus with PMW

Greg McFarlane gregm at
Thu Apr 20 16:34:59 CEST 2000

On 18 Apr, Pete wrote:
> I am trying to determine which widget,  the focus is currently on in my
> code.  When I make a call to get_focus() it gives me an instance of a
> TKinter.Entry,  but I am only creating PMW widgets (which are of course
> extended from TKinter).  Since I am not creating TKinter widgets
> explicitly in my own code,  how can I determine which PMW widget that
> specific TKinter.Entry instance belongs to?

You will need to maintain a list of all the Tkinter widgets in your
application that can get focus and compare them against the one
returned by focus.get().  You can get the component widgets of a
Pmw megawidget by using the component() method. For example
    entryfield = Pmw.EntryField()
    entry = entryfield.component('entry')
The Pmw documentation lists all the components of each megawidget,
along with their types.

However, would it not be better to use something like
bind('<FocusIn>') on all the widgets (or component widgets of
megawidgets) you are interested in, then your application can be
notified whenever focus changes, rather than having to ask for it.

Greg McFarlane     INMS Telstra Australia     gregm at

More information about the Python-list mailing list