Tkinter之grid所有属性详解

Tkinter的grid()方法记录
我理解的grid方法就是需要将容器如何放置在你的窗口上面,主要是将窗口划分为一些行列的网格,理解方式可以按照excel中的行列理解,少许不同的就是row和column的数值在grid中是相对的大小,而不是excel中绝对位置的概念。grid最重要的是按照行列划分后放在指定的位置,和代码顺序无关。
首先pack()方法的属性有如下几个:
-row, -column, rowspan, columnspan, -ipadx, -ipady, -padx, -pady, -sticky
其中grid方法可以应用于Tkinter内的所有容器;
 
 
 

row,column

row参数表示的是容器将要放置在窗口划分好的第几行,(从0开始)
column参数表示的是容器将要放置在窗口划分好的第几列,(从0开始)
行列是相对值得概念;
同一个行列单元,重复放置会重叠显示,后放置的覆盖先放置;

#"作者:晒晒小木桩"
import tkinter as tk

window = tk.Tk()
#window.geometry("300x300")
tk.Button(window,text="第0行第0列").grid(row=0,column=0)
tk.Button(window,text="第0行第1列").grid(row=0,column=1)
tk.Button(window,text="第0行第2列").grid(row=0,column=5)    #此处虽然将column设置为5,但是还是会放在column=2的地方
tk.Button(window,text="第1行第0列").grid(row=1,column=0)
tk.Button(window,text="第1行第1列").grid(row=1,column=1)
tk.Button(window,text="覆盖").grid(row=1,column=1)   #将2个不同的容器放置在同一个位置上式叠加显示的
window.mainloop()

结果
在这里插入图片描述

rowspan, columnspan

这2个参数配合row和column使用,表示将对应行列单元格的row或者column合并为一个使用。

#"作者:晒晒小木桩"
import tkinter as tk

window = tk.Tk()
window.geometry("300x300")
tk.Button(window,text="第一个",bg="green").grid(row=0,column=0,rowspan=2,columnspan=2)
tk.Button(window,text="第二个",bg="red").grid(row=0,column=2,columnspan=2)
tk.Button(window,text="第1行第2列").grid(row=1,column=2)
tk.Button(window,text="第1行第3列").grid(row=1,column=3)
tk.Button(window,text="第2行第0列").grid(row=2,column=0)
tk.Button(window,text="第2行第1列").grid(row=2,column=1)
tk.Button(window,text="第2行第2列").grid(row=2,column=2)
tk.Button(window,text="第2行第3列").grid(row=2,column=3)
window.mainloop()

结果如下:
在这里插入图片描述excel中就是这样的,可以按这个对应来理解。
在这里插入图片描述 
 
 

sticky

表示tkinter属性放置时在对应row,column内的对齐方式;
sticky属性的参数有n,s,e,w,ne,nw,se,sw可选,默认居中

#"作者:晒晒小木桩"
import tkinter as tk

window = tk.Tk()
#window.geometry("300x300")
tk.Button(window,text="第一个",bg="green").grid(row=0,column=0,rowspan=2,columnspan=2,sticky="se")
tk.Button(window,text="第二个",bg="red").grid(row=0,column=2,columnspan=2,sticky="e")
tk.Button(window,text="第1行第2列").grid(row=1,column=2)
tk.Button(window,text="第1行第3列").grid(row=1,column=3)
tk.Button(window,text="第2行第0列").grid(row=2,column=0)
tk.Button(window,text="第2行第1列").grid(row=2,column=1)
tk.Button(window,text="第2行第2列").grid(row=2,column=2)
tk.Button(window,text="第2行第3列").grid(row=2,column=3)
window.mainloop()

 
结果如下:
在这里插入图片描述
 
 
 
 

*ipadx, ipady, padx, pady可以参考另一篇的pack中的介绍

  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值