Grid(网格)布局管理器会将控件放置到一个二维的表格里。主控件被分割成一系列的行和列,表格中的每个单元(cell)都可以放置一个控件。
什么时候使用Grid管理器
grid管理器是Tkinter里面最灵活的几何管理布局器。如果你不确定什么情况下从三种布局管理中选择,你至少要保证自己会使用grid。
当你设计对话框的时候,grid布局管理器是一个非常方便的工具。如果你之前使用pack进行布局的话,你会被使用grid后的简洁而震惊。与适应很多frame来让pack工作不同,在大多数情况下,你只需要将所有控件放置到容器中,然后使用grid将它们布局到任何你想要布局的地方。
参考下面这个例子:
使用pack进行布局的话,你不得不使用一些额外的frame控件,而且还需要花费一些功夫让他们变得好看。如果你使用grid的话,你只需要对每个控件使用grid,所有的东西都会以合适的方式显示。
注意:不要试图在一个主窗口中混合使用pack和grid。
使用grid进行布局管理非常容易。只需要创建控件,然后使用grid方法去告诉布局管理器在合适的行和列去显示它们。你不用事先指定每个网格的大小,布局管理器会自动根据里面的控件进行调节。
from Tkinter import *
master = Tk()
Label(master, text="First").grid(row=0)
Label(master, text="Second").grid(row=1)
e1 = Entry(master)
e2 = Entry(master)
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
mainloop()
运行如下图所示:
label1占据0行0列,label2占据1行0列,entry1占据0行1列,entry2占据1行1列。
注意:1.在使用grid方法时,如果不指定column参数,则默认从0开始。
2.没有被使用的行和列号将被忽略,在上面的例子中如果使用10行和20行,则运行效果是一样的。
使用sticky参数
默认的空间会在网格中居中显示。你可以使用sticky选项去指定对齐方式,可以选择的值有:N/S/E/W,分别代表上/下/左/右。如果你想让label靠左显示,你可以设置stricky的值为W。
from Tkinter import *
master = Tk()
Label(master, text="First").grid(row=0, sticky=W)
Label(master, text="Second").grid(row=1, sticky=w)
e1 = Entry(master)
e2 = Entry(master)
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
mainloop()
运行效果如下图:
你同样可以指定控件跨越一个或者多个网格。columnspan选项可以指定控件跨越多列显示,而rowspan选项同样可以指定控件跨越多行显示。
下面的代码创建了我们最初演示的示意图:
from Tkinter import *
master = Tk()
var = IntVar()
Label(master, text="First").grid(sticky=E)
Label(master, text="Second").grid(sticky=E)
e1 = Entry(master)
e2 = Entry(master)
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
checkbutton = Checkbutton(master, text='Preserve aspect', variable=var)
checkbutton.grid(columnspan=2, sticky=W)
photo = PhotoImage(file='2qq.gif')
label = Label(image=photo)
label.image = photo
label.grid(row=0, column=2, columnspan=2, rowspan=2, sticky=W+E+N+S, padx=5, pady=5)
button1 = Button(master, text='Zoom in')
button1.grid(row=2, column=2)
button2 = Button(master, text='Zoom out')
button2.grid(row=2, column=3)
mainloop()
运行效果如下图:
在这段代码中,有一些细节需要注意:
1. 我们没有为左边的两个label控件指定具体的位置,在这种情况下,column将会从0开始,而row将会从第一个没有使用的值开始。
2. 我们队checkbutton设置了columnspan参数,所以它会显示在第二行,并占据第0和1列。
3. 图像label占用了2行2列,而最后的两个button都只占用了1列。
相关推荐
本文实例为大家分享了Python Grid使用和布局的具体代码,供大家参考,具体内容如下 #!/usr/bin/env python import vtk # 这个示例主要用于将不同的图像对象显示到指定的Grid中 def main(): colors = vtk....
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】...
Python GUI编程 164_Grid布局管理器详解.mp4
零基础Python教程048期_GUI模拟用户登录,grid布局很方便!#编程创造城市
我在这里主要说一下tkinter中3种布局方式中的grid布局,在之前写个比较简单的软件的时候遇到了写问题,在此记录下来。 1. grid中的一些参数:需要声明的是,行列大小由该列/行中最大组件大小所决定!! column: ...
新建label与button,并设置位置(grid) import tkinter as tk root = tk.Tk() label = tk.Label(root, text = ‘Label') label.grid(column = 3, row = 8) button = tk.Button(root, text = ‘Button') button....
我们将使用python生成一些数独布局,这些布局将被加载到sqlite数据库中。 我们还将生成关联的蒙版,以在各种完成状态下渲染拼图的变化。 最后,我们将使用ag-grid将其呈现在仪表板上。 dashobard将允许不同代理处理...
本文实例讲述了Python GUI编程学习笔记之tkinter界面布局显示。分享给大家供大家参考,具体如下: 相关内容: pack 介绍 常用参数 使用情况 常用函数 grid 介绍 常用参数 使用情况 常用函数 place ...
Tkinter了解、tkinter扩展、tkinter架构分析、外观配置、widget style组件外观属性、事件events and bindings、basewindow-toplevel、菜单选择、工具栏toolbar、信息messagebox、状态栏statusbar、扩展学习、grid布局
Grid是基于GoGi的SVG矢量... 导出PNG和PDF取决于 (取决于python),请按照以下步骤安装: $ pip3 install cairosvg 设计 总体布局类似于inkscape,并读取/写入与inkscape兼容的SVG文件。 顶部的主要水平工具栏-顶部
Python GUI tkinter各个基础控件Label、Button、Entry、Text、ListBox的属性和方法进行了更加详细的说明,同时补充了tkinter中控...对tkinter框架frame以及布局pack、grid、place也做了比较详细的属性方法说明与示例。
没有注释, 不过应该还是不难看懂的, tkinter主要用的grid布局 作用就跟aes在线工具差不多, 不同的是ase 加密位数, 初始向量IV, 模式, 编码, 填充 图形界面都没有修改的选项 额外的是多了个自动按时间保存加密后的...
i3,我们心爱的窗口管理器,着重于平铺和选项卡式布局。 i3允许用户自己处理浮动组件,同时提供许多工具(刮擦垫,标记等)。 发现浮动窗口的管理乏善可陈,我决定写一个子经理来处理浮动窗口。 缺乏标准工具已导致...
用作Python图片浏览器演示。在原ImageGallery.rar的基础上,增加简单的组件自适应性,在窗口...将Tkinter的grid布局修改为pack布局。线程管理selenium和geckodriver的启动和使用,引入GC机制销毁geckodriver和firefox。
温州大学计算机与人工智能学院 《Python应用开发》课程作业 实验名称Grid布局 班 级 姓 名 学 号实验地点5B-105实验时间第7周、第8周指
自写一个虚拟列表,有垂直布局,水平布局,网格布局和Padding的List Demo地址:https://files-cdn.cnblogs.com/files/gamedaybyday/cocos2.3.4_ListViewDemo_Grid.7z cocos原来的LayOut做列表,有100个数据就有...
前端修炼小册 简介 | 以「前端开发」为主线,涵盖但不仅限于前端技术栈的知识点。 记录每一天的进步,越努力,越幸运,欢迎收藏或 star。 与的区别: 博客记录日常开发经验,读书...Grid 布局 未完结,待更新 JavaScr
分类目录 打字稿Node.js JavaScript框架和库ReactRedux Vue 盖茨比Next.js Nest.js 拉姆达Python Ruby滑轨C# 长生不老药前端CSS CSS基础flexbox , grid和其他布局错误的提示和技巧CSS资源Postgres 去锈Web组装移动...