tkinter官方文档关于grid的说明,从字面上不好理解。就布局而且,自己的总结如下,
- grid中的行的高度、列的宽度默认都是0像素。
- 每行的高度不是固定值,可以不同。
- 行的高度,以同一行中最高控件的高度为高度。
- 每列的高度不是固定值,可以不同。
- 列的宽度,以同一列中最宽的控件宽度为宽度。
- 行、列都是抽象概念,类似占位符。
- columnspan,虽然可以设置跨越几个列,宽度等于几个列的宽度,但如果其中某列上没有控件,该列的宽度就是0。如果列上有控件,就以该列上最打宽度为宽度。然后最后计算总的宽度为columnspan的宽度。rowspan类似。
演示代码
r1=tk.Button(window, text='row 0, column 0, columnspan 2', bg='Red').grid(row=0, column=0, columnspan=1)
r2=tk.Button(window, text='row 0, column 2, columnspan 2', bg='Yellow').grid(row=0, column=2, columnspan=2)
r3=tk.Button(window, text='row 1, column 1', bg='Green').grid(row=1, column=2)
r4=tk.Button(window, text='row 1, column 1', bg='Green').grid(row=2, column=3)
代码结果