(Python GUI)对pack(几何管理器)与grid(网格管理器)的理解
=======================================================================
参考资料:Programming Python Fourth Edition
=======================================================================
一、在给定的父容器中两着之间互相排斥
如果使用了pack(grid)打包,那么在当前父容器下只能继续使用pack(grid)。必须注意不要将它们混淆!!
当然,若要想同时使用两种管理器,那么只需用在各自的Frame容器组件中隔离两者即可。
二、在布局方式上的不同
通过为几何管理器(pack)提供约束和边,让pack恰如其分的布局好组件。
网格管理器(grid)将组件分配到具体的行数和列数中,二者都从0开始计算。tkinter使用这些坐标,一般再结合组件的尺寸,将它们自动布局在容器中。(仿佛父容器组件就是一张表格)
图中部件的父容器为Frame。
对于pack,用side选项来设置左右两侧的部件,就像放置拼图一样。只能大概的指定放置的方位。
对于grid,采取为每个组件分配row和column值的方法,在父容器的网格空间中进行定位。可以指定精确的位置进行放置
三、填充顺序上导致裁切效果的不同
对于pack:一个组件可以获得剩余空间中完整的一条边,先填充的对象最后被裁切掉(在你缩小你的窗口时能够观察到)。
对于grid:则通过网格行为来实现裁切效果。