Tkinter - 只标记一个复选框

以下代码允许用户只选择一个单选按钮。例如,如果用户选择 Type II 按钮,然后单击 Type III 按钮,则先前的选择将消失。


from tkinter import *


root = Tk()


radiobutton_variable = IntVar()

Radiobutton(root, text="Type II",  variable = radiobutton_variable, value = 1).grid(row = 0, column = 0)

Radiobutton(root, text="Type III", variable = radiobutton_variable, value = 2).grid(row = 0, column = 1)

Radiobutton(root, text="Type IV",  variable = radiobutton_variable, value = 3).grid(row = 1, column = 0)

Radiobutton(root, text="Type V",   variable = radiobutton_variable, value = 4).grid(row = 1, column = 1)


mainloop()

如果我对检查按钮小部件使用相同的代码,我会收到错误消息:


TclError: unknown option "-value"

有人知道如何解决这个问题吗?


青春有我
浏览 109回答 3
3回答

鸿蒙传说

这两个小部件有不同的用途,应该相应地使用。Radiobutton允许从相互排斥的列表中选择一个选项。Checkbutton允许从列表中选择任意数量的选项。Radiobutton像您一样使用s 在这里是最合适的。虽然毫无意义,但强制Checkbuttons 表现得像Radiobuttons 在技术上是可行的。将Checkbuttons 链接到同一个变量,但onvalue为每个变量设置一个唯一的。import tkinter as tkroot = tk.Tk()variable = tk.IntVar(root)for onvalue in range(1, 5 + 1):    checkbutton = tk.Checkbutton(        root,        onvalue=onvalue,        variable=variable,    )    checkbutton.pack()root.mainloop()

MMMHUHU

复选按钮和单选按钮有不同的选项,因为它们做不同的事情。实例Checkbutton不支持value选项。相反,它有一个onvalue和offvalue选项,用于指定小部件打开或关闭时的值。小部件也Checkbutton需要有自己的独特性。variable如果您想限制用户,使他们只能从多个值中选择一个值,则Checkbutton使用 a 是错误的小部件。这正是 的用途Radiobutton。单选按钮用于排他性选择,复选按钮用于多选。

慕尼黑5688855

如果您希望用户只选择一个复选框,则可以使用复选框。通过运行此代码并选择该选项,您就会明白这一点。我知道其他人已经回答了你的问题。但也许我的回答可以帮助某人。from tkinter import *root = Tk()#Same variable but different valuesradiobutton_variable = IntVar()Radiobutton(root, text="Radiobutton only one", variable = radiobutton_variable, value = 1).grid(row = 0, column = 0)Radiobutton(root, text="Radiobutton only one",  variable = radiobutton_variable, value = 2).grid(row = 0, column = 1)#Same variable but different valuescheckbutton_variable = IntVar()Checkbutton(root, text="Checkbutton only one",   variable = checkbutton_variable, onvalue = 3).grid(row = 1, column = 0)Checkbutton(root, text="Checkbutton only one",  variable = checkbutton_variable, onvalue = 4).grid(row = 1, column = 1)#Same variable, same values or no value#Select both radio buttonboth_select_radiobutton_variable = IntVar()Radiobutton(root, text="radiobutton both", variable = both_select_radiobutton_variable).grid(row = 2, column = 0)Radiobutton(root, text="radiobutton both",  variable = both_select_radiobutton_variable).grid(row = 2, column = 1)#Same variable, same values or no value#Select both check buttonboth_select_checkbutton_variable = IntVar()Checkbutton(root, text="Checkbutton both", variable = both_select_checkbutton_variable).grid(row = 3, column = 0)Checkbutton(root, text="Checkbutton both",  variable = both_select_checkbutton_variable).grid(row = 3, column = 1)mainloop()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python