我一直在尝试学习如何使用 python 和 Tkinter。 当我有多列不同尺寸的按钮时,它们不会像我期望的那样根据我制作的尺寸进行对齐。
它看起来像什么:
如您所见,高度设置为 100 的按钮仅使用与 6 个高度为 10 的按钮相同的空间,而不是按预期占据整个高度。
预期结果:
有没有什么方法可以按预期对齐按钮,而无需手动尝试找出点亮按钮所需的尺寸?
代码:
import tkinter as tk
import tkinter.font as tkFont
root = tk.Tk()
pixelVirtual = tk.PhotoImage(width=1, height=1)
large = tk.Button(root,
text='Height=100',
image=pixelVirtual,
width=100,
height=100,
compound='c')
for i in range(10):
small = tk.Button(root,
text='Height=10',
image=pixelVirtual,
width=100,
height=10,
compound='c')
small.grid(row=i, column= 1)
large.grid(row=0, rowspan=10, column=0)
root.mainloop()
这是因为
small
按钮的最终高度不是10。在我的系统中是18:
border width
是 2 x 2(上和下),即 4highlightthickness
是 1 x 2(上和下),即 2pady
是 1 x 2(上和下),即 2所以总共是
4 + 2 + 2 + 10 = 18
与
large
按钮类似:4 + 2 + 2 + 100 = 108
,即 6 x 18
。
为了对齐
large
按钮,请在 sticky='nsew'
中添加 grid(...)
:
large.grid(row=0, rowspan=10, column=0, sticky='nsew')