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 の定義を作成します。この値は、「大きな」定義で使用したいものです。しかし、ラジオボタンをクリックすると、定義 (setValueTrue など) は実行されません。プログラムを実行したときにのみ、ラジオボタンが定義を実行します。このため、list と list1 の値は自動的に false と false になります。ラジオボタンがコードを実行していない理由を知っている人はいますか?

4

1 に答える 1

1

このcommandオプションは、関数への参照を取ります。その場合、関数command=setValueTrue()呼び出し、関数の結果をcommand属性に渡します。結果はNoneであるため、ボタンに関連付けられたコマンドはありません。

修正は、括弧を削除することです。

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