为什么我的 Button 小部件不能垂直展开

Why won't my Button widget expand vertically

我正在熟悉 Tkinter,我正在尝试编写一个非常简单的程序,它使用包几何管理器在 window 中显示一个按钮。

我正在试验 pack() 的各种配置选项,例如 expandfillside,我已经 运行一个奇特的问题。我写了下面的代码:

from Tkinter import *

root = Tk()
widget = Button(root, text='text')
widget.pack(expand=YES, fill=BOTH)
root.mainloop()

问题是按钮扩展到水平方向填充window,但不是垂直方向。这与我使用 fill=X 而不是指定 fill=BOTH 得到的结果相同。此外,如果我改为指定 fill=Y,则该按钮不会向任一方向展开。垂直方向的填充好像有问题,我想不通是什么问题。

我试图 Google 这个问题,但令人惊讶的是,没有人提到这件事发生在其他人身上。我正在使用带有 OS X Yosemite 和 运行ning python 2.7.5 的 Mac。我还尝试使用 python 3.4.1 进行编译,但没有看到任何变化。

编辑:

根据下面的回答和评论,很明显我的代码没有任何问题,因为它似乎可以在其他机器上运行。如果不是代码中的错误,有谁知道当我 运行 上面的代码时可能导致按钮不垂直拉伸的原因是什么?

尝试 运行 此代码以查看 fillexpand

的行为
from Tkinter import *

root = Tk()
root.geometry("500x500")
widget = Button(root, text='text1')
widget.pack(fill=X, expand=1)
widget = Button(root, text='text2')
widget.pack(fill=Y, expand=1)
widget = Button(root, text='text3')
widget.pack(fill=BOTH, expand=1)
root.mainloop()

参数 fill 也填充垂直方向

这是 OSX 上原生按钮的一项功能。 OSX 上的按钮高度固定,不会垂直展开。除了使用不同的小部件(例如标签)之外,您无能为力。

我也是初学者,您的代码中缺少定义填充的几何形状,如下所示:

from Tkinter import *

root = Tk()
root.geometry("600x400")
widget = Button(root, text='text')
widget.pack(expand=YES, fill=BOTH)
root.mainloop()