Tkinter:固定尺寸框架中的中心标签?

Joh*_*ohn 5 python tkinter

我正在尝试创建一个固定大小的框架并在中心放置一个文本标签。我不确定为什么这不起作用。我想要主框架左上角的框架,所以指定了 NW 并且工作正常。但是改变标签的粘性方向没有任何作用。帮助表示赞赏。

self.f = Frame(self.master,bg="yellow",width=50,height=50)
self.f.grid(row=0,column=0,sticky="NW")
self.f.grid_propagate(0)
self.f.update()
self.l = Label(self.f,text="123",anchor="center",bg="yellow")
self.l.grid(column=0,row=0,sticky="wens")
Run Code Online (Sandbox Code Playgroud)

VRa*_*age 5

.place()由于您的框架和标签具有不同的父级,因此您可以将其用于标签。在place()你可以使用anchor="center"指定你的“锚点”的起点:xy。这是一个工作示例:

app = Tk()
f = Frame(app,bg="yellow",width=50,height=50)
f.grid(row=0,column=0,sticky="NW")
f.grid_propagate(0)
f.update()
l = Label(f,text="123",bg="yellow")
l.place(x=25, y=25, anchor="center")
app.mainloop()
Run Code Online (Sandbox Code Playgroud)

  • @VRage:你不需要所有关于`place`的数学——你可以使用相对坐标(即:`l.place(relx=.5,rely=.5)`) (3认同)