focus with PMW
gregm at iname.com
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 iname.com
More information about the Python-list