Tkinter怎么构建grid布局管理器

这篇文章主要讲解了“Tkinter怎么构建grid布局管理器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Tkinter怎么构建grid布局管理器”吧!

创新互联公司为您提适合企业的网站设计 让您的网站在搜索引擎具有高度排名,让您的网站具备超强的网络竞争力!结合企业自身,进行网站设计及把握,最后结合企业文化和具体宗旨等,才能创作出一份性化解决方案。从网站策划到成都做网站、成都网站设计, 我们的网页设计师为您提供的解决方案。

pack布局管理器是早期Tkinter中常用的一种布局方式。这种方式应对简单的情况很容易,但是随着要求越来越复杂,布局的难度会迅速提高。本文介绍另外一种方式:grid布局管理器。

grid这个英文单词是格子,网格的意思。顾名思义,grid布局管理器的工作方式就是设想将父窗口空间划分为网格,并在网格中布置控件。

例如如下的小窗口就可以看做一个三行两列的网格。

Tkinter怎么构建grid布局管理器

这个画面可以用如下代码构建:

from tkinter import *root = Tk()Label(root, text="用户名").grid(row=0, sticky=W)Label(root, text="密码").grid(row=1, sticky=W)Entry(root).grid(row=0, column=1, sticky=E)Entry(root).grid(row=1, column=1, sticky=E)Button(root, text="Cancel").grid(row=2, column=0, sticky=E)Button(root, text="Login").grid(row=2, column=1, sticky=E)root.mainloop()

从代码中可以看出grid方法以供使用了3个参数:

row:指定控件所在行,缺省值为下一行

column:指定控件所在列,缺省值为0

sticky:可选值包括NW,N,NE,W,E,SW,S,SE。这些值可以理解为地图上的方位,例如NE就是东北。下图是一个示意图表明每个取值在布局网格中的位置。

Tkinter怎么构建grid布局管理器

这些取值也可以组合使用,例如E+W的效果就是水平拉伸空间。当我们如下方式修改生成Login按钮的代码时,

Button(root, text="Login").grid(row=2, column=1, sticky=E+W)

可以得到如下的布局,Login按钮已经铺满了网格(2,1):

Tkinter怎么构建grid布局管理器

如果觉的这个布局还是不够美观,也可以考虑按照如下方式布局:

Tkinter怎么构建grid布局管理器

我们希望水平方向上每个编辑框占用两个网格。这是需要使用如下参数:

columnspan:指定水平方向上控件占有的网格数。

rowspan:指定垂直方向上控件占有的网格数。

代码如下:

from tkinter import *root = Tk()Label(root, text="用户名").grid(row=0, sticky=W)Label(root, text="密码").grid(row=1, sticky=W)Entry(root).grid(row=0, column=1, sticky=E, columnspan=2)Entry(root).grid(row=1, column=1, sticky=E, columnspan=2)Button(root, text="Cancel").grid(row=2, column=1, sticky=E+W)Button(root, text="Login").grid(row=2, column=2, sticky=E+W)root.mainloop()

代码除了为编辑框指定columnspan的值为2之外,还将两个按钮的sticky值指定为E+W以占满所处的网格。

总的来说grid布局管理器,简明易懂,使用灵活,是目前Tkinter推荐的布局方式。

感谢各位的阅读,以上就是“Tkinter怎么构建grid布局管理器”的内容了,经过本文的学习后,相信大家对Tkinter怎么构建grid布局管理器这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


本文题目:Tkinter怎么构建grid布局管理器
标题网址:http://csdahua.cn/article/pidjij.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流