如何在Tkinter中垂直居中?

时间:2014-03-28 18:46:05

标签: tkinter

此代码仅水平居中,如何使进度条也垂直居中?

import Tkinter
import ttk
root = Tkinter.Tk()
root.geometry("=500x500")
root.progressbar = ttk.Progressbar(root)
root.progressbar.pack(anchor=Tkinter.CENTER)
root.mainloop()

Screenshot

2 个答案:

答案 0 :(得分:4)

在这种特定情况下,将expand=True添加到pack语句就足够了。

不要将此作为在任何情况下如何集中任何窗口小部件的通用建议。 expand=True不是“以此为中心”的秘密别名。恰好在这种特定情况下,扩展与缺少fill属性的使用,窗口大于进度条的事实以及没有任何其他事实的组合小部件,所有这些都协同工作以使这个特定的小部件居中。

另一种可以使窗口小部件居中的方法 - 尤其是如果它是区域中唯一的窗口小部件 - 是使用place。这是place可能优于gridpack的少数几次之一。 place允许您将窗口小部件显式放置在其容器的中心。

例如:

root.progressbar.place(relx=.5, rely=.5, anchor="c")

这说“将小部件的中心放置在容器宽度的50%和容器高度的50%”。

答案 1 :(得分:0)

如果您有多个小部件要居中并且不希望它们重叠,则可以将它们全部放入框架中,并使用place()方法将其居中,如Bryan Oakley所示。