选择一个复选框会取消选择 tkinter 中的其他选项
Selecting one checkbox deselects other options in tkinter
我有一个带紫外线、绿色和蓝色的 LED 面板。试图弄清楚一旦我单击 "No Light"(选项 4),它将如何禁用或取消选择前三个复选按钮(uv、绿色、蓝色)?我在这里看到了不同的选择:
https://www.tutorialspoint.com/python/tk_checkbutton.htm
但我不知道如何连接它们。由于我对 Python/coding 还很陌生,任何想法都会很有帮助。感谢任何见解。谢谢!
checkvar1 = tk.IntVar()
checkvar2 = tk.IntVar()
checkvar3 = tk.IntVar()
checkvar4 = tk.IntVar()
c1 = tk.Checkbutton(leftframeobjcol, text="UV", variable = checkvar1)
c1.pack(anchor="w")
c2 = tk.Checkbutton(leftframeobjcol, text="Green", variable = checkvar2)
c2.pack(anchor="w")
c3 = tk.Checkbutton(leftframeobjcol, text="Blue", variable = checkvar3)
c3.pack(anchor="w")
c4 = tk.Checkbutton(leftframeobjcol, text="No light", variable = checkvar4)
c4.pack(anchor="w")
您可以使用 command
选项为四个 Checkbutton
分配回调,并在回调中,根据传递的值重置其他三个复选按钮或重置 No light
复选按钮检查按钮的回调和当前状态:
def reset(flag=False):
if flag:
# 'No light' clicked
if checkvar4.get():
checkvar1.set(0)
checkvar2.set(0)
checkvar3.set(0)
else:
# other light clicked, reset 'No light' if any one of the others is checked
checkvar4.set(0 if checkvar1.get() or checkvar2.get() or checkvar3.get() else 1)
c1 = tk.Checkbutton(leftframeobjcol, text="UV", variable=checkvar1, command=reset)
c1.pack(anchor="w")
c2 = tk.Checkbutton(leftframeobjcol, text="Green", variable=checkvar2, command=reset)
c2.pack(anchor="w")
c3 = tk.Checkbutton(leftframeobjcol, text="Blue", variable=checkvar3, command=reset)
c3.pack(anchor="w")
c4 = tk.Checkbutton(leftframeobjcol, text="No light", variable = checkvar4, command=lambda:reset(True))
c4.pack(anchor="w")
我有一个带紫外线、绿色和蓝色的 LED 面板。试图弄清楚一旦我单击 "No Light"(选项 4),它将如何禁用或取消选择前三个复选按钮(uv、绿色、蓝色)?我在这里看到了不同的选择:
https://www.tutorialspoint.com/python/tk_checkbutton.htm
但我不知道如何连接它们。由于我对 Python/coding 还很陌生,任何想法都会很有帮助。感谢任何见解。谢谢!
checkvar1 = tk.IntVar()
checkvar2 = tk.IntVar()
checkvar3 = tk.IntVar()
checkvar4 = tk.IntVar()
c1 = tk.Checkbutton(leftframeobjcol, text="UV", variable = checkvar1)
c1.pack(anchor="w")
c2 = tk.Checkbutton(leftframeobjcol, text="Green", variable = checkvar2)
c2.pack(anchor="w")
c3 = tk.Checkbutton(leftframeobjcol, text="Blue", variable = checkvar3)
c3.pack(anchor="w")
c4 = tk.Checkbutton(leftframeobjcol, text="No light", variable = checkvar4)
c4.pack(anchor="w")
您可以使用 command
选项为四个 Checkbutton
分配回调,并在回调中,根据传递的值重置其他三个复选按钮或重置 No light
复选按钮检查按钮的回调和当前状态:
def reset(flag=False):
if flag:
# 'No light' clicked
if checkvar4.get():
checkvar1.set(0)
checkvar2.set(0)
checkvar3.set(0)
else:
# other light clicked, reset 'No light' if any one of the others is checked
checkvar4.set(0 if checkvar1.get() or checkvar2.get() or checkvar3.get() else 1)
c1 = tk.Checkbutton(leftframeobjcol, text="UV", variable=checkvar1, command=reset)
c1.pack(anchor="w")
c2 = tk.Checkbutton(leftframeobjcol, text="Green", variable=checkvar2, command=reset)
c2.pack(anchor="w")
c3 = tk.Checkbutton(leftframeobjcol, text="Blue", variable=checkvar3, command=reset)
c3.pack(anchor="w")
c4 = tk.Checkbutton(leftframeobjcol, text="No light", variable = checkvar4, command=lambda:reset(True))
c4.pack(anchor="w")