【发布时间】:2014-12-19 12:45:06
【问题描述】:
我正在尝试创建一个按钮网格。这些按钮中的文本会改变,所以我希望按钮变大 - 填充每个网格元素的边框。下面的代码是说明问题的简化版本。按钮大多填充水平空间,但不填充垂直空间(除非添加多行文本作为按钮标签)。
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()
这对我来说是这样的:
【问题讨论】:
-
奇怪,works on my machine。也许这是 Mac 特有的行为?
-
我可以复制(在 Mac 上)。
-
顺便说一句,这可能不是您的问题的根源,但您的
buttons字典将只包含None值,因为您添加的是grid的结果而不是按钮自己。 -
@Kevin: 一定是,因为当我在带有 OS X 的 stock 2.7 发行版上运行此代码时,我得到与 OP 相同的结果。
-
你知道你可以使用像
buttons[(x,y)]这样的元组,而不是使用数学来计算字典键。这样做可能会使您的代码更容易理解。