使用列表的复选按钮状态(tkinter python)
Checkbutton status with using list (tkinter python)
我想通过 "for" 函数获取所有已定义复选按钮的状态。
我有四个复选按钮,输出是 (off, off, off, off):
[0, 0, 0, 0]
但是我需要有例如(关,开,开,关):
[0, 1, 1, 0]
看起来下面的代码只是从最后一个 "D" 检查按钮获取状态并附加到 "buttons_status" 列表。
知道如何获取所有检查按钮的状态吗?
提前致谢。
这是一个代码:
from tkinter import *
names = ['A','B','C','D']
buttons_status = []
root = Tk()
for x in range(0,len(names)):
checkbutton_input = IntVar()
checkbutton = Checkbutton(root, text=str(names[x]),
variable=checkbutton_input)
checkbutton.grid(row=3, column=x)
status = checkbutton_input.get()
buttons_status.append(status)
root.mainloop()
print(buttons_status)
您需要将实际的 IntVars 添加到列表中,并在您想要查看状态时调用 get 方法。我们通常会将这样的功能放在函数中:
from tkinter import *
def get_all():
return [x.get() for x in buttons_status]
names = ['A','B','C','D']
buttons_status = []
root = Tk()
for x in range(0,len(names)):
checkbutton_input = IntVar()
checkbutton = Checkbutton(root, text=str(names[x]), variable=checkbutton_input)
checkbutton.grid(row=3, column=x)
buttons_status.append(checkbutton_input)
root.mainloop()
print(get_all())
也就是说,听起来您确实需要的是一个子类。你在这里的总体目标是什么?
我想通过 "for" 函数获取所有已定义复选按钮的状态。 我有四个复选按钮,输出是 (off, off, off, off):
[0, 0, 0, 0]
但是我需要有例如(关,开,开,关):
[0, 1, 1, 0]
看起来下面的代码只是从最后一个 "D" 检查按钮获取状态并附加到 "buttons_status" 列表。
知道如何获取所有检查按钮的状态吗? 提前致谢。
这是一个代码:
from tkinter import *
names = ['A','B','C','D']
buttons_status = []
root = Tk()
for x in range(0,len(names)):
checkbutton_input = IntVar()
checkbutton = Checkbutton(root, text=str(names[x]),
variable=checkbutton_input)
checkbutton.grid(row=3, column=x)
status = checkbutton_input.get()
buttons_status.append(status)
root.mainloop()
print(buttons_status)
您需要将实际的 IntVars 添加到列表中,并在您想要查看状态时调用 get 方法。我们通常会将这样的功能放在函数中:
from tkinter import *
def get_all():
return [x.get() for x in buttons_status]
names = ['A','B','C','D']
buttons_status = []
root = Tk()
for x in range(0,len(names)):
checkbutton_input = IntVar()
checkbutton = Checkbutton(root, text=str(names[x]), variable=checkbutton_input)
checkbutton.grid(row=3, column=x)
buttons_status.append(checkbutton_input)
root.mainloop()
print(get_all())
也就是说,听起来您确实需要的是一个子类。你在这里的总体目标是什么?