我的目标是添加一个垂直滚动条到一个框架,其中有几个标签。当框架内的标签超过框架的高度时,滚动条应该自动启用。通过搜索,我发现 这个有用的职位。基于这篇文章,我理解为了达到我想要的效果,(如果我错了请纠正我,我是一个初学者)我必须首先创建一个 Frame
,然后在这个框架内创建一个 Canvas
,并将滚动条粘贴到这个框架上。然后,创建另一个框架,并将其作为窗口对象放在画布中。所以,我终于想到了这个:
from Tkinter import *
def data():
for i in range(50):
Label(frame,text=i).grid(row=i,column=0)
Label(frame,text="my text"+str(i)).grid(row=i,column=1)
Label(frame,text="..........").grid(row=i,column=2)
def myfunction(event):
canvas.configure(scrollregion=canvas.bbox("all"),width=200,height=200)
root=Tk()
sizex = 800
sizey = 600
posx = 100
posy = 100
root.wm_geometry("%dx%d+%d+%d" % (sizex, sizey, posx, posy))
myframe=Frame(root,relief=GROOVE,width=50,height=100,bd=1)
myframe.place(x=10,y=10)
canvas=Canvas(myframe)
frame=Frame(canvas)
myscrollbar=Scrollbar(myframe,orient="vertical",command=canvas.yview)
canvas.configure(yscrollcommand=myscrollbar.set)
myscrollbar.pack(side="right",fill="y")
canvas.pack(side="left")
canvas.create_window((0,0),window=frame,anchor='nw')
frame.bind("<Configure>",myfunction)
data()
root.mainloop()
anchor='nw'
有什么特别之处吗?请简单回答,因为我是初学者。