为什么我的滚动框不出现在滚动条的顶部?

为什么我的滚动框不出现在滚动条的顶部?

问题描述:

我希望我的滚动条位于滚动条的顶部。但是,在当我运行该程序的滚动条的中间显示出来,如下图所示:为什么我的滚动框不出现在滚动条的顶部?

https://i.stack.imgur.com/EfxMJ.png

我想我的滚动条在顶部,从而显示在窗口中的第一小部件。但由于某种原因,我无法弄清楚,滚动框出现在中间。 这是我的代码。我必须做些什么来修复这个错误?

from tkinter import * 

root = Tk() 
root.geometry("640x480") 

def scrollFunc(event): 
mycanvas.config(scrollregion=mycanvas.bbox('all')) 

mycanvas=Canvas(root) 
mycanvas.pack(fill=BOTH, expand=True) 

myframe = Frame(mycanvas) 

mycanvas.create_window((0,0), window=myframe) 

myscrollbar = Scrollbar(mycanvas, command=mycanvas.yview) 
myscrollbar.pack(side=RIGHT, fill=Y) 
mycanvas.config(yscrollcommand=myscrollbar.set) 

for x in range(1, 101): 
    Label(myframe, text="Label: "+str(x)).pack() 


mycanvas.bind("<Configure>", scrollFunc) 

root.mainloop() 

您给出窗口的坐标为0,0,但是您没有定义锚点。默认锚点是“c”(或“center”)。这意味着你的框架的中间将在0,0。

最简单的解决方案是将锚点设置为“nw”(代表“西北”)。

mycanvas.create_window(..., anchor="nw")