如何在Python中将`tkinter.grid`放置的小部件居中?

时间:2016-07-03 07:39:47

标签: python python-3.x tkinter

我有一个GUI。在此,我grid编辑了许多小部件。但问题是网格放置的小部件总是在左上角。我希望它们位于屏幕的中心,同时仍然通过grid方法保留它们。我怎么做?这是我的代码:

    self.frame = tkinter.Frame()

    tkinter.Label(self.frame, text=(name+' By '+coordinator), font=('Calibri', 24)).grid(row=1,column=1,columnspan=4)

    self.tree = tkinter.ttk.Treeview(self.frame)
    self.tree.grid(row=2, column=1, rowspan=8, padx=4, pady=4, ipadx=4, ipady=4)

    tkinter.ttk.Label(self.frame, text='ID:').grid(row=4, column=2)
    self.id = tkinter.ttk.Entry(self.frame, width=3)
    self.id.grid(row=5, column=2, padx=4)

    tkinter.ttk.Label(self.frame, text='Points:').grid(row=4, column=3)
    self.marks = tkinter.ttk.Entry(self.frame, width=2)
    self.marks.grid(row=5, column=3, padx=4)

    self.submit = tkinter.ttk.Button(self.frame, text='Submit')
    self.submit.grid(row=5, column=4, padx=4)

enter image description here

感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用以下技巧,该功能提供了不修改现有代码的优势:

在另一个必须居中的self.frame实例中绘制tkinter.Frame()

self.main_frame = tkinter.Frame()
self.frame.place(in_=self.main_frame, anchor="c", relx=.50, rely=.50)