Tkinterでチェックボックスのリストを作成しましたが、すべてのチェックボックスを1つのチェックボックスで選択したいと思います。ここでTkinter/python:すべてのチェックボタンを選択するチェックボタンを作成する方法
は私のコードの一部です:私は、ファイルを押し、「すべてを選択」を実行すると
root = tk.Tk()
root.title("SOMETHING")
buttons=[]
#If it is checked, then run the file
def callback():
for var, name in buttons:
if var.get():
subprocess.call("python " + "scripts/" + name)
for name in os.listdir("scripts"):
if name.endswith('.py') or name.endswith('.pyc'):
if name not in ("____.py", "_____.pyc"):
var = tk.BooleanVar()
cb = tk.Checkbutton(root, text=name, variable=var)
cb.pack()
buttons.append((var,name))
def select_all():
if var1.get():
for i in cb:
i.select(0,END)
def deselect_all():
if var2.get():
for i in cb:
i.deselect_set(0,END)
var1=tk.BooleanVar()
selectButton = tk.Checkbutton(root, text="Select All", command=select_all, variable=var1)
selectButton.pack()
var2=tk.BooleanVar()
deselectButton = tk.Checkbutton(root, text="None", command=deselect_all, variable=var2)
deselectButton.pack()
submitButton = tk.Button(root, text="Run", command=callback)
submitButton.pack()
root.mainloop()
、私はこのエラーを取得する:「str」はオブジェクトが属性を持っていない「選択します」。
ありがとうございました:)
はあなたがCBに私のために ''何を期待している: ''行うには? '' cb''はリストではなく、あなたが作成した最後のチェックボタンです。また、 '' .select(0、END) ''は、Checkbutton上で意味のある操作ではありません。また、私はBooleanVarがあなたのチェックボタンのために働くとは思わない - デフォルトのオン/オフ状態は1/0であり、真/偽ではない。代わりにIntVarを試してください。これらの変数を指定すると、ボタンを選択/選択解除する方法は、変数に '' .set(1) 'または' '.set(0)' 'を呼び出すことです。 – jasonharper
@jasonharper def select_all()は、「すべて選択」チェックボックスがオンになっている場合に表示され、リストを通過してすべてを選択します。しかし、私はその機能のために何を書くべきか分かりません。そして、ええ、私はBooleanVarをIntVarに変更しました。おかげで – RABBIT