我正在尝试使用滚动条在画布中放置一个框架,画布滚动但滚动条不会调整以显示位置
from tkinter import *
from tkinter import ttk
parent=Tk()
studentFrame=ttk.Frame(parent)
studentFrame.pack()
#settup the canvas
canvas=Canvas(studentFrame,width=700,height=300)
scroller=ttk.Scrollbar(studentFrame, orient=VERTICAL,command=canvas.yview)
canvas.grid(row=0,column=0,stick="nsew")
scroller.grid(row=0,column=1,stick="ns")
canvas.config(yscrollcommand=scroller.set)
list=ttk.Frame(canvas,width=700)
ttk.Label(list,text="S/N",width=10,relief=SUNKEN).grid(row=0,column=0,ipadx=3,ipady=3)
ttk.Label(list,text="Name",width=55,relief=SUNKEN).grid(row=0,column=1,ipadx=3,ipady=3)
ttk.Label(list,text="",width=15,relief=SUNKEN).grid(row=0,column=2,ipadx=3,ipady=3)
ttk.Label(list,text="",width=15,relief=SUNKEN).grid(row=0,column=3,ipadx=3,ipady=3)
num=0
r=0
while(r<50):
num=num+1
ttk.Label(list,text=num,width=10,relief=SUNKEN).grid(row=r,column=0,ipadx=3,ipady=3)
ttk.Label(list,text="NAME",width=55,relief=SUNKEN).grid(row=r,column=1,ipadx=3,ipady=3)
ttk.Label(list,text="EDIT",width=15,relief=SUNKEN).grid(row=r,column=2,ipadx=3,ipady=3)
ttk.Label(list,text="DELETE",width=15,relief=SUNKEN).grid(row=r,column=3,ipadx=3,ipady=3)
r=r+1
canvas.create_window((0,0),window=list,anchor=W)
canvas.config(scrollregion=canvas.bbox(ALL))
parent.mainloop()
答案 0 :(得分:0)
您将滚动区域设置为-15像素高(您将可滚动区域的右下角设置为位于可滚动区域的顶部之上)
答案 1 :(得分:0)
终于把它用于我用过的工作 list.update_idletasks() 在设置滚动区域之前