Tkinter自学02:tkinter 的3种布局管理器

如题所述

第1个回答  2022-08-01

所谓布局管理,就是对添加到窗口中的组件的大小和位置进行设置。此外,当用户调整了窗口大小后,布局管理器还会自动调整窗口中各个组件的大小和位置。
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布局管理,方便快捷,整体设计起来比较方便。

相似回答