为什么 pack 和 grid 会覆盖父 widget 的预定义尺寸?

Why does pack and grid override the parent widget's predefined dimensions?

我注意到每次创建 Tkinter 小部件并在小部件实例化期间或通过 configuring them later, these last ones take no effect as soon as I add child widgets inside the parent one where I organize them using the grid layout manager 设置其尺寸。

我的问题:

我宁愿问我的问题只是为了确定我是初学者:这是否意味着使用网格布局管理器会覆盖预定义的父窗口小部件的尺寸?可以解释一下这是如何工作的吗?

提前感谢您的澄清。

grid 和 pack 都有 "shrink to fit" 行为 -- 容器小部件(通常是框架或根 window)的大小由子项的大小决定。此功能称为 几何传播 。您可以关闭此功能,但 99% 的情况下此功能会给您带来最佳效果。

Tkinter 的理念是您应该正确调整用户与之交互的小部件的大小(EntryButton 等),然后让 packgrid计算出合适的帧大小和 windows。

Tkinter 在这方面做得很好,根据我的经验,创建布局变得更加容易,因为您花费更少的时间来计算 space 您需要多少,而将更多的时间专注于用户实际需要什么互动。