Tkinter几何管理器grid
和pack
之间的主要区别是什么?
您对项目使用了什么?
如果grid
更好地对齐对象,那么pack
的主要目的是什么?
答案 0 :(得分:20)
grid用于在网格中布置小部件。另一个答案说它“覆盖了一个图表”,这有点用词不当。它没有覆盖任何东西,它只是沿着行和列边界排列小部件。它非常适合创建表格和其他结构化类型的布局。
pack在盒子两侧放置东西。它擅长做所有事物都在一行或一列中的布局(想想工具栏或对话框中的按钮行)。它对于非常简单的布局也很有用,例如左侧的导航器和右侧的主要工作区域。它可用于创建非常复杂的布局,但在您完全理解打包算法之前它会变得棘手。
您不能同时使用网格和打包与具有共同父级的小部件。您的应用程序可能有效,但是当每个管理器尝试布局窗口小部件时,它更有可能进入无限循环,然后其他人注意到窗口小部件会更改大小并尝试调整等等。
第三个管理是place。 Place非常适合进行绝对定位(即:在给定的x / y处放置小部件)或相对位置(例如:将小部件放在其他小部件的右边缘)。
虽然您无法在同一容器中混合网格和包装(容器通常是一个框架),但可以在单个应用程序中同时使用网格和包。这是非常非常普遍的,因为每个都有优点和缺点。我经常使用它们。