所谓布局管理,就是对添加到窗口中的组件的大小和位置进行设置。此外,当用户调整了窗口大小后,布局管理器还会自动调整窗口中各个组件的大小和位置。
tkinter有三种布局管理器:
(1)Pack
(2)Gird
(3)Place
使用pack布局时,当向窗口中添加组件时,这些组件会依次向后排列,排列方向可以是水平的,也可以是垂直的。
通常我 推荐 使用python自带的 help() 来查看我们不太熟悉的函数。
从上面可以看到,pack通常支持以下的方法:
以上就是pack的常用参数,推荐自己试一试。下面介绍几种常用的参数的使用效果。
先写一个没有参数的栗子。
结果如下:
还是上面的栗子,稍微改一下
将原始的栗子改一下:
实际上,第二个标签是垂直方向填充的,只是这里看不出来,还是建议自己尝试。
多种属性综合起来使用,可以得到自己想要的结果,建议自己多去尝试。
这里举一个小栗子。
Grid布局是Tkinter后来引入的布局方式,相对来说,使用更方便简单。而且相比Pack布局,Grid布局在细节的调整上要更加强大。
Grid布局将容器空间分成一个个类似excel表格的单元格,按照 行(row) 和 列(column) 的方式排列组件,组件位置由其行和列的值来决定:
行号相同而列号不同的几个组件会被依次上下排列
列号相同而行号不同的几个组件会被依次左右排列
使用Grid布局的过程就是为各个组件指定行号和列号的过程,不需要为每个网格指定大小,Grid布局会自动设置合适的大小。
还是 推荐 使用python自带的 help() 来查看我们不太熟悉的函数。
上面的参数与Pack的很多都相同,其余的参数都很好理解,简单列在下面供参考:
接Pack的第一个栗子,将布局方式稍微做一下改变:
注意到,类似excel,列宽默认根据最宽的组件宽度来设置,行高也是一样的,这里没有演示,可以自己试试。
Place布局就是其他GUI布局中的“绝对布局”,要求指定每个组件的绝对位置或者相对于其他组件的相对位置。
还是先看help:
不做过多的介绍了,参数基本上能看懂,无非就是指定绝对的位置和相对的位置,而一般来说Place用得较少。
所以还是推荐Grid布局管理,方便快捷,整体设计起来比较方便。