0

我正在为我的程序使用 GUI。代码如下所示:

lijst=[]
def setValueTrue():
    del lijst[0:len(lijst)]
    e2="True"
    lijst.append(e2)
    print lijst[0]

def setValueFalse():
    del lijst[0:len(lijst)]
    e2="False"
    lijst.append(e2)
    print lijst[0]

lijst1=[]
def setValueTrue1():
    del lijst1[0:len(lijst1)]
    e2="True"
    lijst1.append(e2)

def setValueFalse1():
    del lijst1[0:len(lijst1)]
    e2="False"
    lijst1.append(e2)


root = Tk()
var = IntVar()
R1 = Radiobutton(root, text="Option 1", variable=var, value=1,
                  command=setValueTrue())
R1.pack(anchor = W)
R2 = Radiobutton(root, text="Option 2", variable=var, value=2,
                  command=setValueFalse())
R2.pack(anchor = W)
R3 = Radiobutton(root, text="Option 3", variable=var, value=3,
                  command=setValueTrue1())
R3.pack(anchor = W)

R4 = Radiobutton(root, text="Option 4", variable=var, value=4,
                  command=setValueFalse1())
R4.pack(anchor = W)

b=Button(root, text='Quit', command=root.quit)
b.pack()
b=Button(root, text='Oke', command=lambda:tekenGraaf("OutputB1.txt",25,0.8,dimensies=3,kleur=str(lijst[0]),groepen=str(lijst1[0])))
b.pack()
mainloop()

我有 4 个单选按钮。这些使用定义创建值 true 或 false。我想在我的“大”定义中使用这个值。但是当我单击单选按钮时,不会执行 defs(setValueTrue 等)。只有当我运行程序时,单选按钮才会运行 def。由于这个原因,list 和 list1 的值会自动变为 false 和 false。有谁知道为什么单选按钮不运行代码。

4

1 回答 1

1

command选项引用一个函数。当你这样做时,command=setValueTrue()你正在调用函数,并将函数的结果提供给command属性。结果是None,因此没有与该按钮关联的命令。

解决方法是删除括号:

R1 = Radiobutton(..., command=setValueTrue, ...)
于 2013-03-23T11:32:29.670 回答