为何设置pady会使Tkinter按钮部件变长?与height参数有关吗?
问题解答
pady 和 height 参数的区别
pady是用来设置按钮内部上下方向的填充间距——也就是按钮内容(比如文字)和按钮边框之间的垂直空白区域。给它赋值后,按钮会因为内部填充变大而在垂直方向“变长”,这就是你看到的效果,和height参数没关系。height是直接定义按钮的高度:如果按钮有文字,它的单位是行高;如果是空按钮(像你代码里这样),单位是像素。它是直接限制按钮的高度尺寸,和内部填充不是一回事。
你的代码报错原因及修复
你当前的代码有两个关键问题,这应该是你修改时报错的根源:
- 继承
Tk的Window类,__init__方法里没有调用父类的初始化函数super().__init__(),会导致Tk的核心初始化不完整。 - 创建按钮后没有调用布局方法(
pack()/grid()/place()),按钮不会被渲染显示。
修复后的代码如下:
from tkinter import * class Window(Tk): def __init__(self): super().__init__() # 必须调用父类初始化 self.geometry("1200x700") self.main() def main(self): self.button = Button(self, pady=100, background="red") self.button.pack() # 添加布局,让按钮显示出来 window = Window() window.mainloop()
如果你想通过height控制按钮高度,可以替换参数试试,比如把pady=100改成height=50,就能直接设置按钮的像素高度,不会有内部填充的额外空间。
内容的提问来源于stack exchange,提问作者Dan The Man
相关产品推荐
相关产品推荐

