Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tkinter单选按钮在运行时已被选中_Python_Tkinter - Fatal编程技术网

Python Tkinter单选按钮在运行时已被选中

Python Tkinter单选按钮在运行时已被选中,python,tkinter,Python,Tkinter,您好,我正在尝试创建一个程序使用单选按钮,我只是在它的开始,我已经有一个问题。当我运行程序时,两个单选按钮(binari_1和binari_2)都已被选中,我根本无法与它们交互。我已经尝试过使用取消选择函数,但是对于它返回错误:。我还能做什么?任何帮助都是可以接受的,谢谢 你面临的问题是,你没有为radiobutton设置一个值或变量,设置这些值或变量,你就可以开始了。此外,还需要使用lambda,否则该函数将立即执行 var = IntVar() binari_1 = Radiobutton

您好,我正在尝试创建一个程序使用单选按钮,我只是在它的开始,我已经有一个问题。当我运行程序时,两个单选按钮(binari_1和binari_2)都已被选中,我根本无法与它们交互。我已经尝试过使用取消选择函数,但是对于它返回错误:<'NoneType'对象没有属性'deselect'>。我还能做什么?任何帮助都是可以接受的,谢谢


你面临的问题是,你没有为radiobutton设置一个值或变量,设置这些值或变量,你就可以开始了。此外,还需要使用
lambda
,否则该函数将立即执行

var = IntVar()

binari_1 = Radiobutton(window, text="1", command=lambda:binari(var.get()),variable=var,value=1).grid(column=1, row=0)
binari_2 = Radiobutton(window, text="2", command=lambda:binari(var.get()),variable=var,value=2).grid(column=2, row=0)
如果没有
lambda
,则直接调用函数,因此在选择任何单选按钮之前,函数将运行(调用)。所以,如果要将任何参数传递给函数,请使用
lambda

语法:
lambda:

此外,您还会得到一个
NoneType
错误,因为您
grid()
在同一行声明中,所以只需说:

binari_1 = Radiobutton(window, text="1", command=lambda:binari(var.get()),variable=var,value=1)
binari_1.grid(column=1, row=0)

binari_2 = Radiobutton(window, text="2", command=lambda:binari(var.get()),variable=var,value=2)
binari_2.grid(column=2, row=0)

我试过了,但不幸的是我还是遇到了同样的问题。在这个链接上运行之后,我会留下一个程序的屏幕截图---->。哦,我仍然无法与RadioButton进行交互。我尝试使用您的新代码,使用或不使用deselect()函数。它仍然不起作用。它运行时没有问题,也没有错误,但在这两种情况下按钮都是“选中”的,并且不可交互。@FrancescoRuffinengo也许您遗漏了什么,我将更新整个代码。让我知道,非常感谢你的帮助!!!它起作用了,是的,我丢失了一些代码@FrancescoRuffinengo,我可能建议将
binari=0
更改为
binari_num=0
不建议函数和变量使用相同的名称,这将导致递归或在您的案例中出现进一步的错误。请不要将您的问题写为引号,修复此问题。然后,编辑您的问题,并在文本中的代码表达式中使用
`
括号来澄清问题。请删除称呼语。
binari_1 = Radiobutton(window, text="1", command=lambda:binari(var.get()),variable=var,value=1)
binari_1.grid(column=1, row=0)

binari_2 = Radiobutton(window, text="2", command=lambda:binari(var.get()),variable=var,value=2)
binari_2.grid(column=2, row=0)