我用tkinter创建了一个应用程序,该应用程序创建了一些数据的复选框列表。复选框是根据数据集的大小动态创建的。我想知道一种获取每个特定复选框输入的方法。
这是我的代码,您应该可以运行它。
from tkinter import *
root = Tk()
height = 21
width = 5
for i in range(1, height):
placeholder_check_gen = Checkbutton(root)
placeholder_check_gen.grid(row=i, column=3, sticky="nsew", pady=1, padx=1)
for i in range(1, height):
placeholder_scope = Checkbutton(root)
placeholder_scope.grid(row=i, column=4, sticky="nsew", pady=1, padx=1)
root.mainloop()
我查看了其他答案,有人通过在复选框设置“ variable = x”中定义一个变量,然后使用具有“ variable.get()”的“ show():”函数调用该变量来逃脱现实。内。如果有人可以给我指出正确的方向,或者我该如何进行。谢谢,非常感谢。
答案 0 :(得分:1)
通常,您需要为每个检查按钮创建IntVar
或StringVar
的实例。您可以将它们存储在列表或字典中,然后以通常的方式检索值。如果您不创建这些变量,则会自动为您创建它们。在这种情况下,您需要保存对每个复选框的引用。
这里是保存参考的一种方法:
self.general_checkbuttons = {}
for i in range(1, self.height):
cb = Checkbutton(self.new_window)
cb.grid(row=i, column=3, sticky="nsew", pady=1, padx=1)
self.general_checkbuttons[i] = cb
然后,您可以在相同范围内进行迭代以获取值。为此,我们首先向小部件询问其关联变量的名称,然后使用tkinter的getvar
方法获取该变量的值。
for i in range(1, self.height):
cb = self.general_checkbuttons[i]
varname = cb.cget("variable")
value = self.root.getvar(varname)
print(f"{i}: {value}")