确定选择了哪个Radiobutton

时间:2014-12-12 01:49:58

标签: python tkinter

我很抱歉这个愚蠢的问题,但似乎没有太多关于此的文件是可以理解的。

到目前为止,我有这个:

self.firstRadioButton = Radiobutton(self.__canvas, text="ONE", fg='white', bg=BACKGROUND_COLOR, variable=self.selectedONE, value=1)

self.secondRadioButton = Radiobutton(self.__canvas, text="TWO", fg='white', bg=BACKGROUND_COLOR, variable=self.selectedTWO, value=2)

首先,它是一个单选按钮的原因是因为用户必须选择一个。 所以必须自动选择(我认为Python已经做到了)。

其次,我试图获得用户选择的任何一个的值。这是我的问题,我不能为我的生活搞清楚这一点。

2 个答案:

答案 0 :(得分:4)

关键是要确保两个radiobutton共享同一个变量。然后,要知道选择哪一个,您只需要获取变量的值。

以下是一个例子:

import tkinter

# function that is called when you select a certain radio button
def selected():
    print(var.get())


root = tkinter.Tk()

var = tkinter.StringVar() #used to get the 'value' property of a tkinter.Radiobutton

# Note that I added a command to each radio button and a different 'value'
# When you press a radio button, its corresponding 'command' is called.
# In this case, I am linking both radio buttons to the same command: 'selected'

rb1 = tkinter.Radiobutton(text='Radio Button 1', variable=var, 
                          value="Radio 1", command=selected)
rb1.pack()
rb2 = tkinter.Radiobutton(text='Radio Button 2', variable=var, 
                          value="Radio 2", command=selected)
rb2.pack()

root.mainloop()

答案 1 :(得分:0)

它的工作方式 - 您不会检查选择了哪个单选按钮,而是将单选按钮绑定到事件。

您必须将单选按钮绑定到函数或事件。 参考这些文章: http://www.java2s.com/Tutorial/Python/0360__Tkinker/BindvariabletoRadioButton.htm http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm

尝试类似的内容:

self.secondRadioButton.bind('<ButtonRelease-1>', self.__function_name_that_should_run_when_radiobtn_selected)