繁体   English   中英

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

[英]Why doesn't my scroll box appear at the top of the scroll bar?

我希望我的滚动框位于滚动条的顶部。 但是当我运行程序时,它显示在滚动条的中间,如下所示:

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”(或“中心”)。 这意味着帧的中间将为0,0。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM