如何使用网格几何管理器将Tkinter中LabelFrame中的所有行和列居中?默认情况下,所有内容都在其单元格中居中,但如果LabelFrame具有设置的高度和宽度,如何将单元格置于LabelFrame中心?
例如:
self.labelframe = Labelframe(self, text="First Labelframe",height=200, width=200)
self.labelframe.pack()
self.label1 = Label(self.labelframe, text="Label1")
self.label1.grid(row=0, column=0)
self.label2 = Label(self.labelframe, text="Label2")
self.label2.grid(row=0, column=1)
self.label3 = Label(self.labelframe, text="Label3")
self.label3.grid(row=1, column=0)
在此示例中,标签位于其单元格的中心,但单元格将从LabelFrame的左上角开始。有没有办法让细胞居中?
谢谢!
答案 0 :(得分:2)
一个简单的解决方案是在顶部和底部添加一个空行,在左侧和右侧添加一个空列。为这些行和列赋予权重,以便为它们提供任何额外的空间。
self.label1.grid(row=1, column=1)
self.label2.grid(row=1, column=2)
self.label3.grid(row=2, column=1)
self.labelframe.grid_rowconfigure(0, weight=1)
self.labelframe.grid_rowconfigure(3, weight=1)
self.labelframe.grid_columnconfigure(0, weight=1)
self.labelframe.grid_columnconfigure(3, weight=1)
另一种解决方案是添加围绕self.labelframe
的另一个框架。然后,您可以让self.labelframe
保持其所需的大小,但将其置于其他框架的中心位置。