我正在尝试为记录文件的小型绘图程序创建GUI。我将所有数据都放在字典中(实际上是dict {dict {dict {}}}}}}并且想要使用这些键来创建顶部键复选框的选项卡数量,这些复选框基本上会被选中以绘制数量与子键的时间。我已经查看了pyttk,它看起来与我想要的类似,但我遇到了如何实现选项卡/按钮创建的问题。
提前致谢了。
答案 0 :(得分:1)
一种方法是在字典中存储对关联变量的引用。这是一个例子:
import Tkinter as tk
data = {"Field 1": 1,
"Field 2": 2,
"Field 3": 3,
"Field 4": 4,
}
class SampleApp(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
self.variables ={}
for label in sorted(data.keys()):
self.variables[label] = tk.IntVar()
cb = tk.Checkbutton(self, text=label,
onvalue=data[label], offvalue=0,
variable=self.variables[label])
cb.pack(side="top", fill="x")
button = tk.Button(self, text="Submit", command=self.OnSubmit)
button.pack()
def OnSubmit(self):
for field in sorted(data.keys()):
print "Value for %s: %s" % (field, self.variables[field].get())
if __name__ == "__main__":
app = SampleApp()
app.mainloop()
如果您不喜欢像这样动态创建变量,只需稍加努力就可以创建一个可以与所有按钮相关联的数组。我举了一个如何在问题How to run a code whenever a Tkinter widget value changes?
中做到这一点的例子