【问题标题】:Radiobuttons are modifying wrong values tkinter单选按钮正在修改错误的值 tkinter
【发布时间】:2013-05-07 23:36:30
【问题描述】:

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

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

【问题讨论】:

    标签: python tkinter radio-button tkinter-entry


    【解决方案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()
    

    【讨论】:

    • 这个例子真的回答了这个问题吗?
    【解决方案2】:

    variabletextvariable 应该是不同的variable objects,而不仅仅是内置数据类型:

    way=BooleanVar(root)
    way.set(False)
    # ...
    entryValue=StringVar(root)
    entryValue.set("0")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 2016-06-10
      • 2016-09-01
      • 1970-01-01
      • 2016-03-01
      相关资源
      最近更新 更多