使用 'sticky' 格式化停止工作?

Formatting with 'sticky' stopped working?

我不知道为什么,我从其他程序中复制了代码,这些程序工作得很好,但这里没有。我有这个代码:

from tkinter import *
from tkinter import ttk

#Create Window
main = Tk()
main.geometry('200x200')

Button(main, text = 'WHY WONT STICKY WORK') .grid(row = 0, column = 0, sticky = NSEW)

main.mainloop()

它产生了这个结果:

请有人告诉我,我只是遗漏了一些非常明显的东西,谢谢!

它确实有效。但是您的第 0 列并没有那么宽。它粘在该列的 E 和 W 边界上,但在右边,有第 1 列。

您将小部件的宽度定义为 200px。但是按钮的宽度只有 170px 左右。因此,tkinter 必须假设剩余的 space 用于不同的列。如果您在文本更多的按钮下方插入一个按钮,您会看到第一个按钮变宽(例如 Button(main, text = 'WHY WONT STICKY WORK AGAIN').grid(row = 1, column = 0, sticky = N+S+E+W))。

如果您希望第 0 列跨越整个 window,则必须将此列定义为在 window 大小发生变化时展开的列。只需添加行

main.columnconfigure(0, weight=1)

在 window 几何体的定义之后。这意味着当 window 的宽度发生变化时,第 0 列将被扩展。因此,第 0 列将跨越整个 200px,您的按钮将从 window 的一端到达另一端。