如何在Tkinter中设置窗口或框架内所有窗口小部件的填充

时间:2015-09-16 01:42:43

标签: python tkinter

我创建了一个带有两个按钮的窗口,并设置了两个按钮的填充。

from tkinter import *

window = Tk()
Button(window, text="Click Me").pack(padx=10, pady=10)
Button(window, text="Click Me").pack(padx=10, pady=10)
window.mainloop()

我想从padx中移除padypack()参数并获得相同的结果。我怎么能这样做?

3 个答案:

答案 0 :(得分:6)

如果窗口小部件位于框架或主tk窗口中,您可以执行以下操作:

for child in frame_name.winfo_children():
    child.grid_configure(padx=10, pady=10)

答案 1 :(得分:2)

你做不到。但是,您可以将值放在变量中,这样如果您想稍后更改该值,则只需在一个位置更改它。

padx = 10
pady = 10
Button(...).pack(padx=padx, pady=pady)

几乎可以肯定有更好的方法来解决您的实际问题,但对于问题中的人为设置示例,您可以做的最好的事情是在每次调用{{1}时使用padxpady参数}}

答案 2 :(得分:0)

def pack_configure_recursive(widget, **kwargs):
    stack = list(widget.winfo_children())
    while stack:
        descendent = stack.pop()
        stack.extend(descendent.winfo_children())
        descendent.pack_configure(**kwargs)

...

pack_configure_recursive(window, padx=10, pady=10)