标签小部件不会在tkinter

时间:2017-05-04 22:35:26

标签: python 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()

所以,我只是想知道如何解决这个问题。我想在顶部中间框架的左上角显示名称标签。

1 个答案:

答案 0 :(得分: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)