Tkinter框架与滚动条切断一些数据

时间:2014-01-14 02:31:47

标签: python tkinter tk

我正在尝试使用复选框填充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()

0 个答案:

没有答案