我正在尝试使用复选框填充Tk框架。我能够在框架上列出它们并使列表滚动,但是,在列出一定数量的项目后(这似乎根据输出的数据而变化),列表停止显示。我知道其他项目在技术上存在,因为我可以从我可以查看的最后一项上下标签,但无论出于何种原因,完整列表无法正确显示。有什么想法吗?
from Tkinter import *
from ttk import *
from AutoScrollbar import AutoScrollbar
selectRoot = Tk()
selectRoot.rowconfigure(0, weight=1)
selectRoot.title("Portal Creator - Select Clients")
vscrollbar = AutoScrollbar(selectRoot)
vscrollbar.grid(row=0, column=1, sticky=N+S)
hscrollbar = AutoScrollbar(selectRoot, orient=HORIZONTAL)
hscrollbar.grid(row=1, column=0, sticky=E+W)
canvas = Canvas(selectRoot, yscrollcommand=vscrollbar.set, xscrollcommand=hscrollbar.set)
canvas.grid(row=0, column=0, sticky=N+S+E+W)
vscrollbar.config(command=canvas.yview)
hscrollbar.config(command=canvas.xview)
selectRoot.grid_rowconfigure(0, weight=1)
selectRoot.grid_columnconfigure(0, weight=1)
frame = Frame(canvas)
frame.rowconfigure(1, weight=2)
frame.columnconfigure(1, weight=1)
clientList = []
clientListItems = {}
rowCounter = 0
for client in xrange(0,3000):
checkInt = IntVar()
clientListItems['clientCheck'] = Checkbutton(frame, text=client, variable=checkInt)
clientListItems['clientCheck'].grid(row=rowCounter, column=0, sticky=W)
clientListItems['checkInt'] = checkInt
clientList.append(clientListItems.copy())
rowCounter += 1
canvas.create_window(1, 1, anchor=NW, window=frame)
frame.update_idletasks()
canvas.config(scrollregion=canvas.bbox("all"))
selectRoot.mainloop()