0

我正在使用 tkinter 编写脚本,但发生了一些奇怪的事情。

我有两个单选按钮:

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自动选择,当我输入时1RadioButton1被选择并且对于任何其他值,它们都被选择...反之亦然:当我选择时RadioButton0,输入字段更改为0,当我选择时RadioButton1,输入字段更改为1... 此外,entryValue后来被视为0. 变量way只能由单选按钮修改...

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

4

2 回答 2

3

variable并且textvariable应该是不同的变量对象,而不仅仅是内置数据类型:

way=BooleanVar(root)
way.set(False)
# ...
entryValue=StringVar(root)
entryValue.set("0")
于 2013-05-13T20:32:10.520 回答
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()
于 2013-05-13T20:27:09.033 回答