How to debug an unfired tkinter event?

Terry Reedy tjreedy at udel.edu
Sat Oct 21 18:27:55 EDT 2017


On 10/21/2017 1:25 PM, jfong at ms4.hinet.net wrote:
> Terry Reedy at 2017-10-20 UTC+8 AM 7:37:59 wrote:
>> On 10/19/2017 5:07 AM, jfong at ms4.hinet.net wrote:
>>
>>> I got some info below each time when I squeeze the table:
>>> .
>>> .50077776
>>> .50077776.50712528
>>> .50077776.50712496
>>> .50077776.50712464
>>> .50077776.50712144
>>> .50077776.50712528.50712560.50782256
>>> .50077776.50712528.50712560.50782256.50783024
>>> .50077776.50712528.50712560.50782256
>>> .50077776.50712528.50712560.50782256.50783024
>>>
>>> How to change these number(is it a widget ID?) to a meaning name?
>>
>> The number strings as names are the defaults that came from tkinter, not
>> tcl/tk.  In 3.6, the default names were changed to be versions of the
>> class name.
>>
>>   >>> import tkinter as tk
>>   >>> r = tk.Tk()
>>   >>> b = tk.Button(r)
>>   >>> b
>> <tkinter.Button object .!button>
>>   >>> b2 = tk.Button(r)
>>   >>> b2
>> <tkinter.Button object .!button2>
>>
> I have a question about this change. When there are multiple buttons in the same widget hierarchy level and a ".xxx.yyy.!button2" showing up, how to figure out which button it means?

There is an issue about one particular situation with a name clash. 
This can always be avoided by providing explicit names at least at the leaf.

> By the way, where is the document of this change?

What New in 3.6 should have something.

> Now it doesn't fit the description in the "tkinter 8.5 reference manual" anymore.

If you mean the one at nmt.edu, it is not maintained and is slowly 
becoming out of date.  tcl/tk is now at 8.6.7 or .8.  'tkinter 8.5' is 
something of a misnomer because the tkinter version is the same as the 
Python version and tries to be somewhat up-to-date with tcl/tk, which 
being compatible with earlier tcl/tk versions.

-- 
Terry Jan Reedy




More information about the Python-list mailing list