我用字典中的键填充了一个Tkinter框架,其中有许多checkbutton(大约100个),所以我使用了for循环来完成这项工作。为了保存状态(0或1),我有另一个字典来处理这个问题。但是,当我试图分配一个命令,在选中(即点击)时,将打印状态,什么也没有发生。下面是我创建checkbutton的代码:
import Tkinter as tk
items = {'Books': 5, 'Games': 20, 'Food': 10, 'Clothes': 2}
items_check = {}
class Application(tk.Frame):
def __init__(self, master):
self.master = master
tk.Frame.__init__(self, master, width=500, height=500)
self.master.title('Application')
self.pack_propagate(0)
self.pack()
global items
global items_check
self.row_var = 0
self.column_var = 0
self.row_count = 0
for key in items.iterkeys():
items_check[key] = tk.IntVar()
item_button = tk.Checkbutton(self, text=key, variable=items_check[key], command=self.check_item(key))
if self.row_count % 15 == 0:
self.row_count = 0
self.row_var = 0
self.column_var += 1
item_button.grid(row=self.row_var, column=self.column_var, sticky=tk.W)
self.row_var += 1
self.row_count += 1
def check_item(self, key):
global items_check
if items_check[key].get() == 1:
items_check[key].set(0)
print key
print items_check[key].get()
elif items_check[key].get() == 0:
items_check[key].set(1)
print key
print items_check[key].get()
app = Application(tk.Tk())
app.run()
本质上,当我点击任何一个checkbutton时,我想将这个特定checkbutton的键和值打印到控制台。这个代码什么都不会发生。有什么想法吗?谢谢!在
目前没有回答
相关问题 更多 >
编程相关推荐