On 1/31/2017 4:11 PM, Terry Reedy wrote:
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.

https://bugs.python.org/issue29402

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.

This still seems like a bug to me.  Similar issue
https://bugs.python.org/issue25684 has the same workaround for ttk Option Menu radiobuttons.

--
Terry Jan Reedy

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to