2017-05-04 105 views
0

我對Tkinter很新,但我一直在練習它,但是每當我嘗試通過指定行和列來移動具有網格幾何體的框架中的標籤時,標籤停留在中間。標籤小部件不會在tkinter中的框架內移動

在下面的代碼中,我嘗試指定位於頂部中間框架中的名稱標籤的行和列,但它從不移動。它只停留在中間。

from tkinter import* 

root=Tk() 

frame_topleft = Frame(root, height=150, width=50, bg = "green") 
frame_topmiddle = Frame(root, height=150, width=250, bg="red") 
frame_topright = Frame(root, height=150, width=250, bg="green") 
frame_bottomleft = Frame(root, height=300, width=50, bg="blue") 
frame_bottommiddle = Frame(root, height=300, width=250, bg="yellow") 
frame_bottomright = Frame(root, height=300, width=250, bg="blue") 

label_name=Label(frame_topmiddle, text="Name", font="halvetica") 
label_phone=Label(frame_topmiddle, text="Phone", font="halvetica") 

frame_topmiddle.grid(row=0, column=1) 
frame_topleft.grid(row=0, column=0) 
frame_topright.grid(row=0, column=2) 
frame_bottomleft.grid(row=1, column=0) 
frame_bottommiddle.grid(row=1, column=1) 
frame_bottomright.grid(row=1, column=2) 

label_name.grid(row=0, column=0) 


root.mainloop() 

所以,我只是想知道如何解決這個問題。我想要頂部中間框左上方的名稱標籤。

回答

0

frame_topmiddle縮小到label_name的大小,默認情況下顯示在(第0行,第1列)的中心。

如果設置sticky選項電網的方法來「NW」:
frame_topmiddle.grid(row=0, column=1, sticky='nw')

然後frame_topmiddle將在不是中心(0行,第1列)的左上角。

如果你想frame_topmiddle保持其初始大小,你需要做 frame_topmiddle.grid_propagate(False)

+0

謝謝!有效。 –

相關問題