我使用.grid(... , sticky='news')和{}得到相同的结果(我希望是因为我无法运行代码来看到预期的结果)。在
我将类别保存为二维元组,这样我就可以轻松地使用for循环和item-而不需要这些i*3+j和{}。在
我在同一个循环中创建IntVar()。我使用了临时的var和{},因此它更具可读性。在import tkinter as tk
root = tk.Tk()
str_categories = ( ("Q","W","E"), ("R","T","Y"), ("U","I","O") )
var_categories = {}
chckbx_categories = {}
for r, row in enumerate(str_categories):
root.columnconfigure(r, weight=1)
root.rowconfigure(r, weight=1)
for c, item in enumerate(row):
var = tk.IntVar()
cb = tk.Checkbutton(root, text=item, variable=var, onvalue=1, offvalue=0,
font=('Lucida Grande',15), anchor='w', bg='#FFFFFF')
cb.grid(row=r, column=c, sticky='news')