1
大量のCheckbuttonがあり、それぞれ固有のIntVarが必要です。 チェックボタンをクリックしたときにIntVarの値を出力するコードをexcecuteすると、最後のものを除くすべてが1ではなく0を出力します。 誰でもこのコードのどこに問題があるのかを教えてください。Tkinterの大規模なCheckButtonsに一意のIntVar-sを割り当てる方法
import tkinter as tk
class application():
def __init__(self):
self.win = tk.Tk()
self.createWidgets()
def createWidgets(self):
a=[]
b=[]
c=[1 for i in range(7)]
k=1
for index, item in enumerate(c):
var=tk.IntVar()
a.append(var)
check=tk.Checkbutton(self.win, text='Button %d' %(k), command= lambda: self.a(var.get()), variable =var)
b.append(check)
b[index].grid(row=k)
k=k+1
def a(self, var):
print(var)
if __name__ == "__main__":
app = application()
app.win.mainloop()
ありがとうございました。 –
あなたが言ったようにコマンド部分を変更しましたが、結果は同じです。それはまだ最後のものを除くすべてのボタンのために、0を印刷します。:s –
@ E.Zagああ!私のために働く。 [ここに何が起こるか](https://gist.github.com/72541c4ec173c64ac7c4b498e42ebc16) – tiwo