为什么选择一个复选框会导致另一个复选框被选中?

时间:2019-06-04 17:15:31

标签: python tkinter

当我在一个框架(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”。

0 个答案:

没有答案