代码之家  ›  专栏  ›  技术社区  ›  AhmedWas

在滚动条位置,yview\u moveto()似乎不起作用

  •  1
  • AhmedWas  · 技术社区  · 6 年前

    from tkinter import *
    
    startingWin = Tk()
    
    canvas = Canvas(startingWin, height=600)
    canvas.grid(row=0, column=0,sticky="nsew")
    canvasFrame = Frame(canvas)
    canvas.create_window(0, 0, window=canvasFrame, anchor='nw')
    
    for i in range(70):
        element = Button(canvasFrame, text='Button %s ' % i)
        element.grid(row=i, column=0)
    
    yscrollbar = Scrollbar(startingWin, orient=VERTICAL)
    yscrollbar.config(command=canvas.yview)
    canvas.config(yscrollcommand=yscrollbar.set)
    yscrollbar.grid(row=0, column=1, sticky="ns")
    
    canvas.yview_moveto(0.5)
    
    canvasFrame.bind("<Configure>", lambda event: canvas.configure(scrollregion=canvas.bbox("all")))
    
    startingWin.mainloop()
    

    但是,我得到了滚动条 总是在最上面 , 我给予的价值 yview_moveto()

    enter image description here

    我怎样才能解决这个问题?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Bryan Oakley    6 年前

    你不应该打电话 canvas.yview_moveto(0.5) 直到 scrollregion 已定义。