Python/Tkinter网格不填充垂直空间

Python/Tkinter网格不填充垂直空间,python,tkinter,Python,Tkinter,我正在尝试创建一个按钮网格。这些按钮中的文本将发生变化,因此我希望按钮变大—填充每个网格元素的边框。下面的代码是说明该问题的简化版本。按钮主要填充水平空间,但不填充垂直空间(除非添加多行文本作为按钮标签) 这就是我的收获: OSX上的按钮确实希望看起来像OSX按钮,并且不会以您想要的方式展开。这是使用本机小部件的陷阱之一 OSX上的按钮确实希望看起来像OSX按钮,并且不会按您想要的方式展开。这是使用本机小部件的陷阱之一 OSX上的按钮确实希望看起来像OSX按钮,并且不会按您想要的方式展开。这是使

我正在尝试创建一个按钮网格。这些按钮中的文本将发生变化,因此我希望按钮变大—填充每个网格元素的边框。下面的代码是说明该问题的简化版本。按钮主要填充水平空间,但不填充垂直空间(除非添加多行文本作为按钮标签)

这就是我的收获:



OSX上的按钮确实希望看起来像OSX按钮,并且不会以您想要的方式展开。这是使用本机小部件的陷阱之一

OSX上的按钮确实希望看起来像OSX按钮,并且不会按您想要的方式展开。这是使用本机小部件的陷阱之一

OSX上的按钮确实希望看起来像OSX按钮,并且不会按您想要的方式展开。这是使用本机小部件的陷阱之一

OSX上的按钮确实希望看起来像OSX按钮,并且不会按您想要的方式展开。这是使用本机小部件的陷阱之一

奇怪。也许这是Mac特有的行为?我可以(在Mac上)复制。顺便说一句,这可能不是问题的根源,但是你的
按钮
dict将只包含
None
值,因为你添加的是
grid
的结果,而不是按钮本身。@Kevin:一定是,因为当我使用OS X在stock 2.7发行版上运行此代码时,我得到的结果与OP相同。不使用数学来计算dict键,您是否知道可以使用类似于
按钮[(X,y)]
的元组。这样做可能会使代码更容易理解。奇怪。也许这是Mac特有的行为?我可以(在Mac上)复制。顺便说一句,这可能不是问题的根源,但是你的
按钮
dict将只包含
None
值,因为你添加的是
grid
的结果,而不是按钮本身。@Kevin:一定是,因为当我使用OS X在stock 2.7发行版上运行此代码时,我得到的结果与OP相同。不使用数学来计算dict键,您是否知道可以使用类似于
按钮[(X,y)]
的元组。这样做可能会使代码更容易理解。奇怪。也许这是Mac特有的行为?我可以(在Mac上)复制。顺便说一句,这可能不是问题的根源,但是你的
按钮
dict将只包含
None
值,因为你添加的是
grid
的结果,而不是按钮本身。@Kevin:一定是,因为当我使用OS X在stock 2.7发行版上运行此代码时,我得到的结果与OP相同。不使用数学来计算dict键,您是否知道可以使用类似于
按钮[(X,y)]
的元组。这样做可能会使代码更容易理解。奇怪。也许这是Mac特有的行为?我可以(在Mac上)复制。顺便说一句,这可能不是问题的根源,但是你的
按钮
dict将只包含
None
值,因为你添加的是
grid
的结果,而不是按钮本身。@Kevin:一定是,因为当我使用OS X在stock 2.7发行版上运行此代码时,我得到的结果与OP相同。不使用数学来计算dict键,您是否知道可以使用类似于
按钮[(X,y)]
的元组。这样做可能会使您的代码更容易理解。谢谢!真希望在我花那么多时间试图找出我做错了什么之前就知道这一点。谢谢!真希望在我花那么多时间试图找出我做错了什么之前就知道这一点。谢谢!真希望在我花那么多时间试图找出我做错了什么之前就知道这一点。谢谢!但愿在我花了那么多时间试图找出我做错了什么之前我就知道这一点。
from Tkinter import *
root = Tk()
buttons = {}
for y in range(3):
    root.rowconfigure(y, minsize=60)
for x in range(3):
    root.columnconfigure(x, minsize=60)
    for y in range(3):
        n = 3 * x + y
        buttons[n] = Button(root).grid(column=x, row=y, sticky=W + E + N + S)
root.mainloop()