2013-03-23 30 views
0

我正在爲我的程序使用GUI。代碼如下所示:Radiobutton不運行定義

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個單選按鈕。這些創建與定義的值真或假。我想在我的'大'定義中使用這個值。但是當我單擊單選按鈕時,defs(setValueTrue等)不會執行。只有當我運行程序時,單選按鈕纔會運行def。由於這個原因,list和list1的值自動變爲false和false。有誰知道爲什麼單選按鈕沒有運行代碼。

回答

1

command選項需要參考函數。當你做command=setValueTrue()你是的調用的功能,並給該功能的結果賦予command屬性。結果是None,所以沒有與按鈕相關的命令。

解決方法是刪除括號:

R1 = Radiobutton(..., command=setValueTrue, ...) 
+0

由於這是我需要什麼 – Glenn 2013-03-23 13:14:11