Re: [Tkinter-discuss] Focus issue

2024-01-10 Thread Michael Lange via Tkinter-discuss
Hi,

On Wed, 10 Jan 2024 16:33:46 -0400
Cam Farnell  wrote:

> To answer my own question: the focus was being given to another widget
> after the code in question had executed.
>
> That said, I still don't understand why focus_set followed by
> update_idletasks followed by focus_get would return None, but tkinter
> something works in strange and mysterious ways.
>

I can only guess here, have you tried calling update_idletasks() (or even
update()) *before* calling focus_set() ?

Best regards,

Michael
___
Tkinter-discuss mailing list
Tkinter-discuss@python.org
https://mail.python.org/mailman/listinfo/tkinter-discuss


Re: [Tkinter-discuss] Focus issue

2024-01-10 Thread Cam Farnell

To answer my own question: the focus was being given to another widget after 
the code in question had executed.

That said, I still don't understand why focus_set followed by update_idletasks 
followed by focus_get would return None, but tkinter something works in strange 
and mysterious ways.

Cheers

Cam

On 2024-01-10 08:44, Cam Farnell wrote:

In a rather large program I have this code:

self.TextWidget.focus_set()
print("type(self.TextWidget)=%s"%type(self.TextWidget))
print('Focus_get()=%s'%self.focus_get())

The goal is to have TextWidget get the focus. Usually it does, but there is one 
particular circumstance when it does not get the focus. The "print" lines I 
added for debugging.

The output from the print functions is:

type(self.TextWidget)=
Focus_get()=None

TextWidget is an instance of rpWidgets.ColorizedText which is created thus:

class ColorizedText(tkinter.Text):

which is to say, it's just a tkinter.Text to which I've added methods.

I've tried creating a minimum example without success.

My questions is: how is it possible for TextWidget to NOT have the focus 
immediately after a call to focus_set?

Changing focus_set to focus_force makes no difference.

Invoking update_idletasks() after the focus_set makes no difference.

The TextWidget in question is visible on the screen, and pressing Tab a couple 
of times does get it the focus.

Having spent some hours chasing this I'm a tad frustrated, but quite open to 
suggestions about what to look for.

Cheers

Cam Farnell



___
Tkinter-discuss mailing list
Tkinter-discuss@python.org
https://mail.python.org/mailman/listinfo/tkinter-discuss

___
Tkinter-discuss mailing list
Tkinter-discuss@python.org
https://mail.python.org/mailman/listinfo/tkinter-discuss


[Tkinter-discuss] Focus issue

2024-01-10 Thread Cam Farnell

In a rather large program I have this code:

self.TextWidget.focus_set()
print("type(self.TextWidget)=%s"%type(self.TextWidget))
print('Focus_get()=%s'%self.focus_get())

The goal is to have TextWidget get the focus. Usually it does, but there is one 
particular circumstance when it does not get the focus. The "print" lines I 
added for debugging.

The output from the print functions is:

type(self.TextWidget)=
Focus_get()=None

TextWidget is an instance of rpWidgets.ColorizedText which is created thus:

class ColorizedText(tkinter.Text):

which is to say, it's just a tkinter.Text to which I've added methods.

I've tried creating a minimum example without success.

My questions is: how is it possible for TextWidget to NOT have the focus 
immediately after a call to focus_set?

Changing focus_set to focus_force makes no difference.

Invoking update_idletasks() after the focus_set makes no difference.

The TextWidget in question is visible on the screen, and pressing Tab a couple 
of times does get it the focus.

Having spent some hours chasing this I'm a tad frustrated, but quite open to 
suggestions about what to look for.

Cheers

Cam Farnell



___
Tkinter-discuss mailing list
Tkinter-discuss@python.org
https://mail.python.org/mailman/listinfo/tkinter-discuss