Python3.6 tkinter bug?
Terry Reedy
tjreedy at udel.edu
Tue Jan 31 16:11:48 EST 2017
On 1/31/2017 3:43 PM, MRAB wrote:
> On 2017-01-31 19:18, George Trojan - NOAA Federal wrote:
>> The following program behaves differently under Python 3.6:
>>
>> '''
>> checkbutton test
>> '''
>>
>> import tkinter
>>
>> class GUI(tkinter.Tk):
>> def __init__(self):
>> tkinter.Tk.__init__(self)
>> frame = tkinter.Frame(self)
>> for tag in ('A', 'B'):
>> w = tkinter.Checkbutton(frame, text=tag)
>> w.pack(side='top', padx=10, pady=10)
>> print(w)
>> frame.pack(side='top')
>> frame = tkinter.Frame(self)
>> for tag in ('C', 'D'):
>> w = tkinter.Checkbutton(frame, text=tag)
>> w.pack(side='top', padx=10, pady=10)
>> print(w)
>> frame.pack(side='top')
>>
>> gui = GUI()
>> gui.mainloop()
>>
>> Selection of button 'A' also selects button 'C'. Same goes for 'B' and
>> 'D'.
>> I noticed that widget names have changed, which likely leads to the
>> cause:
>>
>>> /usr/local/Python-3.5.1/bin/python3 foo.py
>> .140182648425776.140182647743208
>> .140182648425776.140182647841848
>> .140182648424152.140182648282080
>> .140182648424152.140182648282136
>>
>>> /usr/local/Python-3.6.0/bin/python3 foo.py
>> .!frame.!checkbutton
>> .!frame.!checkbutton2
>> .!frame2.!checkbutton
>> .!frame2.!checkbutton2
>>
>> Is this a known issue?
>>
> I don't believe so; at least, I couldn't see it in the bug tracker.
Me neither. I will open an issue on the tracker.
> Presumably you'll want to check the values of the checkboxes, so you'll
> bind them to tkinter variables (IntVar, etc). When you do that, it works
> correctly.
>
--
Terry Jan Reedy
More information about the Python-list
mailing list