如何让 tkinter 中的小部件根据 window 大小自动调整大小?

How do I make my widgets in tkinter adjust their size automatically with respect to the window size?

我的 tkinter window 有大约 16 个按钮,它们彼此等距地放置在一个正方形中。我使用 ttk 创建这些对象并使用 place() 将它们放在 window 上。当用户通过拖动 window 的角来调整 window 的大小时,我希望按钮和按钮中的文本根据用户是增大尺寸还是减小尺寸自动 grow/shrink window尺寸。

为了随着小部件的大小增加而增加小部件,我使用 weight 选项以及 sticky 用于 grid 管理器。既然你说你有一个正方形,我就做了 4 行 4 列的 16 个按钮。这就是它的样子:

from tkinter import *

root = Tk()

for i in range(4):
    root.grid_rowconfigure(i,weight=1) # i is the row index
    for j in range(4):
        Button(root,text=f'{4*i+j}th Button', width=10).grid(row=i,column=j,sticky='news')
        root.grid_columnconfigure(j,weight=1) # j is column index

root.mainloop()

因此 sticky='news' 将使小部件占据单元格上的整个 space。 weight 将为给定的 row/column.

提供额外的 space 传播