当我在一个框架(header_frame)中选择一个复选按钮时,会自动在另一框架(check_frame)中选择一个复选按钮。当我取消选择任何一个时,另一个也会被取消,反之亦然。从我所看到的,他们应该彼此完全独立,我缺少什么?
将它们移到同一框架中可以解决此问题,但我需要将其放在单独的框架中。
def __init__(self, master):
self.master = master
self.frame = tk.Frame(self.master)
self.master.geometry("300x200")
self.button1 = tk.Button(self.frame, text='Show Checkbuttons', width=25, command=self.show_checkbutton)
self.button1.pack()
self.frame.pack(fill=tk.BOTH)
# -- header frame --
self.header_frame = tk.Frame(self.frame)
self.header_frame.pack(fill=tk.BOTH)
# -- general checkbutton frame --
self.check_frame = tk.Frame(self.frame)
self.check_frame.pack(fill=tk.BOTH)
def show_checkbutton(self):
self.cb = tk.Checkbutton(self.header_frame, text="all")
self.cb.pack()
self.cb_1 = tk.Checkbutton(self.check_frame, text="var 1")
self.cb_1.pack()
self.cb_2 = tk.Checkbutton(self.check_frame, text="var 2")
self.cb_2.pack()
self.cb_3 = tk.Checkbutton(self.check_frame, text="var 3")
self.cb_3.pack()
当选择“ cb”复选框时,还将选择“ cb_1”。尝试将“ cb_1”与“ cb”放置在同一帧中,导致在选择“ cb_1”时选择“ cb_3”,在选择“ cb_1”时选择“ cb_2”。