【Python_GUI】thinker布局管理——grid()方法

grid()网格布局,在网格中使用row定义组件所在的行,使用column定义组件所在的列。

其常用参数如下:

参数含义
row组件所在的行
column组件所在的列
rowspan组件横向合并的行数
columnspan组件纵向合并的列数
sticky组件填充所分配空间空白区域的方式
padx、pady组件距离窗口边界的水平方向以及垂直方向的距离
grid()方法中参数设置

row、column:定义组件所在的行数、列数。这是grid()网格布局方法中比较重要的两个参数,如果省略,则使用默认值“row=0,column=0”,而单元格的大小取决于最大组件的宽度。

使用gird()方法显示4以内的乘法表:

from tkinter import *

win=Tk()
#标题
win.title('4x4乘法表?')
for i in range(1,5):
    for j in range(1,5):
        if i>=j:
            Label(win,text='{}*{}={}'.format(i,j,i*j)).grid(row=i-1,column=j-1,padx=10)


win.mainloop()

rowspan和columnspan:组件纵向合并的函数和横向合并的列数,例如上图的例子,设置第一行合并4列,第二行的两个组件分别合并2列:

from tkinter import *

win=Tk()
#标题
win.title('4x4乘法表?')
cl=[0,2]
for i in range(1,5):
    for j in range(1,5):
        if i>=j:
            if i==1:
                Label(win,text='{}*{}={}'.format(i,j,i*j),relief='groove').grid(row=i-1,column=j-1,padx=10,columnspan=4)
            elif i==2:
                Label(win,text='{}*{}={}'.format(i,j,i*j),relief='groove').grid(row=i-1,column=cl[j-1],padx=10,columnspan=2)
            elif i==4:
                Label(win,text='{}*{}={}'.format(i,j,i*j),relief='groove').grid(row=i-1,column=j-1,padx=10)

win.mainloop()

sticky:其功能与snchor相似,只不过它有4个可选参数值:N(上对齐)、S(下对齐)、W(左对齐)、E(右对齐)。默认情况下,如果组件的宽度不一致,宽度较小的组件会以宽度较大的组件为基准,将同列的其他组件居中对齐。

sticky还可以组合使用:

sticky=N+S:拉长组件高度,使组件的顶端和底端对齐

sticky=N+S+E:拉长组件高度,使组件的顶端和底端对齐,同时切齐右边

sticky=N+S+W:拉长组件高度,使组件的顶端和底端对齐,同时切齐左边

sticky=W+E:拉长组件宽度,使组件的左边和右边对齐

sticky=N+S+N+S:拉长组件高度和宽度,使组件的上下左右都对齐

rowconfigure()和columnconfigure()方法设置组件的缩放比例

tkinter模块添加的窗口默认情况下都是可以通过拖动鼠标改变大小的,而当窗口大小改变时,可以通过rowconfigure()和columnconfigure()改变某行或某列组件所占空间随窗口缩放的比例。

语法如下:

win.rowconfigure(0,weight=1)
win.columnconfigure(1,weight=1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值