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

wan*_*nik 2 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()
Run Code Online (Sandbox Code Playgroud)

我想删除padxpady参数pack()并得到相同的结果.我怎样才能做到这一点?

bri*_*fox 6

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

for child in frame_name.winfo_children():
    child.grid_configure(padx=10, pady=10)
Run Code Online (Sandbox Code Playgroud)

  • @Felipe此解决方案仍会为每个单独的项目分配填充。我期望@BrianOakley的意思是没有等同于`frame_name.grid_configure_children(padx = 10,pady = 10)`的东西。 (2认同)

Bry*_*ley 2

你不能完全做你想做的事。没有用于定义 padx 和 pady 值的全局配置,pack以便消除调用时显式包含这些值的需要pack。不过,您可以将这些值放入变量中,这样如果以后想更改该值,只需在一处更改即可。

padx = 10
pady = 10
Button(...).pack(padx=padx, pady=pady)
Run Code Online (Sandbox Code Playgroud)

当然,您也可以定义自己的pack命令,每次调用时自动应用您想要的任何值。

几乎肯定有更好的方法来解决您的实际问题,但对于问题中的人为示例,您能做的最好的事情就是在每次调用 时使用padx和参数。padypack()