2017-08-30 7 views
0

私のスクロールボックスをスクロールバーの最上部にしたい。しかし、私はプログラムを実行すると、以下のように、それはスクロールバーの中央に表示:スクロールバーの上部にスクロールボックスが表示されないのはなぜですか?

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,0ですが、アンカーポイントは定義しません。デフォルトアンカーは "c"(または "center")です。つまり、フレームの中央が0,0になります。

最も簡単な解決策は、アンカーポイントを「nw」(「北西」を表す)に設定することです。

mycanvas.create_window(..., anchor="nw") 
関連する問題