Radiobuttons正在修改错误的值tkinter

时间:2013-05-13 20:21:37

标签: python tkinter radio-button tkinter-entry

我正在使用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只能通过单选按钮进行修改......

为什么会这样?我在做一些我不应该做的事吗?我该如何解决?

2 个答案:

答案 0 :(得分:3)

variabletextvariable应该是不同的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()