python tkinter radiobutton state

时间:2015-11-05 15:28:42

标签: python-2.7 tkinter

如何获得Button(点击或未点击)的状态?这是一个按钮状态,而不是关于按钮设置的变量的问题。如何判断是否使用Frame选择了i.winfo_class()中的对象来识别Radiobutton

for i in a.winfo_children():
    if i.winfo_class() == "Radiobutton":
        i.get() 

Radiobuttons没有get属性,因此这将永远不会起作用,但逻辑​​是相同的。我查看了文档但没有成功。

2 个答案:

答案 0 :(得分:0)

唯一的解决方案是获取相关变量的值,并将其与radiobutton的值进行比较。如果它们相同,则选择该单选按钮。

答案 1 :(得分:0)

找到解决方案。 ttk.Radiobutton具有比tkinter.Radiobutton更多的功能。 请注意,即使是现在,Radiobuttons的所有方法和值都会出现重大问题。有时候你得到一个指针,有时你会得到一个字符串,需要自己解除引用。这使得Radiobuttons比我一直在使用的大多数其他人更难处理。有很多文件,他们正在解决这个问题,但需要注意。  就我的目的而言,tkinter.Radiobutton没有instate,这意味着没有简单的方法来检查它是否被点击。指针和取消引用之后我得到了指针,这对于动态gui的代码来说太繁琐和复杂了。 我最终得到的代码如下:

for i in a.winfo_children():
    if i.winfo_class() == "TRadiobutton" and i.instate(['selected']) is True:
        return i.cget('value')

另请注意,使用TRadioButton字符串而不是RadioButton,返回的对象类型在Radiobutton的ttktkinter实现之间并不相同。