为什么我的滚动框不出现在滚动条的顶部?
问题描述:
我希望我的滚动条位于滚动条的顶部。但是,在当我运行该程序的滚动条的中间显示出来,如下图所示:为什么我的滚动框不出现在滚动条的顶部?
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")