如何缩放按钮而不使它们错位或修复对齐?

问题描述 投票:0回答:1

我一直在尝试学习如何使用 python 和 Tkinter。 当我有多列不同尺寸的按钮时,它们不会像我期望的那样根据我制作的尺寸进行对齐。

它看起来像什么:

1

如您所见,高度设置为 100 的按钮仅使用与 6 个高度为 10 的按钮相同的空间,而不是按预期占据整个高度。

预期结果:

2

有没有什么方法可以按预期对齐按钮,而无需手动尝试找出点亮按钮所需的尺寸?

代码:

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()
python-3.x tkinter layout alignment
1个回答
1
投票

这是因为

small
按钮的最终高度不是10。在我的系统中是18:

  • border width
    是 2 x 2(上和下),即 4
  • highlightthickness
    是 1 x 2(上和下),即 2
  • pady
    是 1 x 2(上和下),即 2
  • 文字/图像面积为10

所以总共是

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')
© www.soinside.com 2019 - 2024. All rights reserved.