我正在使用tkinter编写脚本,但是发生了一些奇怪的事情。
我有两个radioButtons:
way=False
RadioButton0=Radiobutton(root,text="From",variable=way,value=False)
RadioButton1=Radiobutton(root,text="To",variable=way,value=True)
RadioButton0.grid(column=0,row=2)
RadioButton1.grid(column=1,row=2)
一个文字输入栏:
entryValue=0
entryField=Entry(root,textvariable=entryValue)
entryField.grid(column=0,row=4)
当我在输入字段中输入0
时,会自动选择RadioButton0
,当我输入1
时,会选择RadioButton1
,而对于任何其他值,它们都会被选中...
这反之亦然:当我选择RadioButton0
时,输入字段更改为0
,当我选择RadioButton1
时,输入字段更改为1
...此外,{{1以后被视为entryValue
。变量0
只能通过单选按钮进行修改......
为什么会这样?我在做一些我不应该做的事吗?我该如何解决?
答案 0 :(得分:3)
variable
和textvariable
应该是不同的variable objects,而不仅仅是内置数据类型:
way=BooleanVar(root)
way.set(False)
# ...
entryValue=StringVar(root)
entryValue.set("0")
答案 1 :(得分:1)
您可以使用命令调用方法并设置值。请参阅附件代码。
def sel():
selection = "You selected the option " + str(var.get())
label.config(text = selection)
root = Tk()
frame = Frame(root)
frame.pack()
labelframe = LabelFrame(frame, text="This is a LabelFrame")
labelframe.pack(fill="both", expand="yes")
var = IntVar()
R1 = Radiobutton(labelframe, text="Option 1", variable=var, value=1,
command=sel)
R1.pack( anchor = W )
R2 = Radiobutton(labelframe, text="Option 2", variable=var, value=2,
command=sel)
R2.pack( anchor = W )
R3 = Radiobutton(labelframe, text="Option 3", variable=var, value=3,
command=sel)
R3.pack( anchor = W)
label = Label(labelframe)
label.pack()