[Tkinter-discuss] FocusOut not working as expected - tix broken?

mkieverpy at tlink.de mkieverpy at tlink.de
Thu Oct 11 18:20:10 CEST 2012


 Hi,

 On Wed, 10 Oct 2012 11:37:35 +0200, Michael Lange wrote:
> (...)
>> The problem is when I use the 'Tab' key to move
>> the focus. The first 'Tab' moves the focus
>> to the 'foo' button. 'f' no longer gets key events
>> but does not get the focus out event either.
>> The next 'Tab' moves the focus to the 'bar' button,
>> 'f' gets the focus out event and key events arrive again
>> after I do 'focus_set'.
>> So it looks like tk standard behaviour. Can I get what I want?
>
> With your example from the previous post the focus will never reach 
> the
> "bar" button, maybe it was a typo in on_focus_out() and should be
> f2.focus.set() ?
> Anyway, I am not sure what exactly you want to achieve (maybe I 
> missed
> something from your previous posts?), is there a particular reason 
> why not
> to do nothing about focus handling and just leave it to the WM?

 Sorry, to have been unclear here.
 My main interest is capturing all keyboard input
 with these lines:
 ------------------------------
 def on_key(event):
     print('key')

 f.bind('<Key>', on_key)
 ------------------------------
 I want to use this to implement keyboard control for some features.
 In the case where 'f' has children which can get focus
 I may loose keyboard input because 'f' won't get notified
 about FocusOut (lines 2-4 in my above description).
 In the workaround I use a frame without children.
 In this case I always get the FocusOut event and
 can reclaim focus with 'f.focus_set()'.

 Regards,
 Matthias Kievernagel



More information about the Tkinter-discuss mailing list