如何在 tkinter 中将填充添加到小部件,而不是整行的小部件?
How to add padding to a widget, but not the entire row's widgets, in tkinter?
我有一个包含各种元素的大框架。在这个框架内,框架基本上有两个不同的侧面。考虑左侧的小部件 x
,由 .grid(row=4, column=0)
放置。 padding 被添加到这个对象 x
,所以它实际上是 x.grid(row=4, column=0, pady=10)
好吧,相反的对象,对象 y
,被 y.grid(row=4, column=4)
放在同一行,或者沿着那些线。我有这个设置,但是 x 上的 pady 也在向 y
添加填充。 我希望在行中的一个小部件上填充 -- 而不是整行。 因此,我的释义问题是,如何仅向一个小部件添加填充连续,而不向相应行中的每个对象添加填充?
使用 .grid()
几何管理器时,小部件的最大尺寸(包括其间距)将是整个行和列的宽度和长度。值得庆幸的是,有一些方法可以解决这个问题。这里有两个这样的选项:
选项 1
使用便签将您的小部件 y
强制到正确的位置。它看起来像这样:y.grid(row=1, column=1, sticky="nw")
。 "nw" 是小部件将停留在网格上的位置。例如,如果将其设置为 "n",y
将位于其网格的顶部 - space.
选项 2
使用columnspan
或rowspan
允许小部件x
占用多个格子space。这看起来像 x.grid(row=1, column=1, rowspan=2)
。这将拉伸 x
的网格 space 并且不会影响其右侧和左侧的小部件。把它想象成这样; row
是您开始绘制矩形的地方,columnspan
或 rowspan
是您结束的地方。
考虑到这些想法,请查看 this link 以了解我上面描述的方法是如何工作的。
行的真正定义是始终具有相同的高度。这就是让它成为一排的原因。列也是如此。
因此,一行中最高的项目(高度加内边距)控制着行的整体高度。您对较小的小部件的唯一控制是它们粘在它们太大的单元格的哪一侧。
例如,如果您希望所有小部件沿其顶部对齐,请使用 sticky="n"
,这会使小部件的顶部 "stick" 到 space 他们已经分配好了。如果您希望它们沿底部对齐,请使用 sticky="s"
。既不提供 "n"
也不提供 "s"
意味着它们将沿中点对齐。
我有一个包含各种元素的大框架。在这个框架内,框架基本上有两个不同的侧面。考虑左侧的小部件 x
,由 .grid(row=4, column=0)
放置。 padding 被添加到这个对象 x
,所以它实际上是 x.grid(row=4, column=0, pady=10)
好吧,相反的对象,对象 y
,被 y.grid(row=4, column=4)
放在同一行,或者沿着那些线。我有这个设置,但是 x 上的 pady 也在向 y
添加填充。 我希望在行中的一个小部件上填充 -- 而不是整行。 因此,我的释义问题是,如何仅向一个小部件添加填充连续,而不向相应行中的每个对象添加填充?
使用 .grid()
几何管理器时,小部件的最大尺寸(包括其间距)将是整个行和列的宽度和长度。值得庆幸的是,有一些方法可以解决这个问题。这里有两个这样的选项:
选项 1
使用便签将您的小部件 y
强制到正确的位置。它看起来像这样:y.grid(row=1, column=1, sticky="nw")
。 "nw" 是小部件将停留在网格上的位置。例如,如果将其设置为 "n",y
将位于其网格的顶部 - space.
选项 2
使用columnspan
或rowspan
允许小部件x
占用多个格子space。这看起来像 x.grid(row=1, column=1, rowspan=2)
。这将拉伸 x
的网格 space 并且不会影响其右侧和左侧的小部件。把它想象成这样; row
是您开始绘制矩形的地方,columnspan
或 rowspan
是您结束的地方。
考虑到这些想法,请查看 this link 以了解我上面描述的方法是如何工作的。
行的真正定义是始终具有相同的高度。这就是让它成为一排的原因。列也是如此。
因此,一行中最高的项目(高度加内边距)控制着行的整体高度。您对较小的小部件的唯一控制是它们粘在它们太大的单元格的哪一侧。
例如,如果您希望所有小部件沿其顶部对齐,请使用 sticky="n"
,这会使小部件的顶部 "stick" 到 space 他们已经分配好了。如果您希望它们沿底部对齐,请使用 sticky="s"
。既不提供 "n"
也不提供 "s"
意味着它们将沿中点对齐。