【发布时间】:2018-11-16 18:03:48
【问题描述】:
我正在尝试创建一个简单的可滚动框架但是在这样做时我注意到内部框架中显示的小部件数量不超过 1559。
框架是否有任何限制或限制,它只能垂直 1560 个小部件??
from Tkinter import *
def con(event):
canvas.configure(scrollregion=canvas.bbox("all"))
window = Tk()
outframe = Frame(window,width=300,height=300,bg="red")
outframe.pack()
canvas = Canvas(outframe,width=200,height=200,bg="blue")
inframe = Frame(canvas,width=200,height=200,bg="red")
bar = Scrollbar(outframe)
bar.pack(side="right",fill="y")
canvas.configure(yscrollcommand=bar.set)
bar.configure(command=canvas.yview)
canvas.pack()
canvas.create_window((0,0),window=inframe,anchor='nw')
inframe.bind("<Configure>",con)
for i in range(2000):
Label(inframe,text=str(i)).grid(row=i,column=0)
window.mainloop()
【问题讨论】:
-
这不是小部件的限制,而是我认为的坐标空间的限制; +/-32767 像素左右。
-
我怀疑它与框架的最大高度有关。如果你把标签打包成多列,(例如,通过
Label(inframe,text=str(i)).grid(row=i/10,column=i%10)),那么2000个标签都将毫无问题地呈现。
标签: python tkinter tkinter-canvas scrollable