在使用Tkinter模块编写图像界面时,经常用到pack()和grid()进行布局管理,pack()参数较少,使用方便,是最简单的布局,但是当控件数量较多时,可能需要使用grid()进行布局(不要在同一个窗口中同时使用grid()和pack()!!)。

  grid使用方法和主要参数:

  1. row=x,column=y:将控件放在x行,y列的位置。注意:
  • 如果不指定参数,则默认从0开始。
  • 此处的行号和列号并不是像在坐标轴上一样严格,只是代表一个上下左右的关系,如:

  Label(master, text="First").grid(row=0)
  Label(master, text="Second").grid(row=1)

和(在行号“1”没有出现的情况下):

  Label(master, text="First").grid(row=0)
  Label(master, text="Second").grid(row=2)

效果都是一样的:

  2.columnspan: 设置单元格横向跨越的列数,即控件占据的列数(宽度); rowspan:设置单元格纵向跨越的行数,即控件占据的行数(高度)。

  3.ipadx:设置控件里面水平方向空白区域大小; ipady:设置控件里面垂直方向空白区域大小;

   padx:设置控件周围水平方向空白区域保留大小; pady:设置控件周围垂直方向空白区域保留大小;

  4.sticky:默认的控件在窗口中的对齐方式是居中。可以使用sticky选项去指定对齐方式,可以选择的值有:N/S/E/W,分别代表上对齐/下对齐/左对齐/右对齐,可以单独使用N/S/E/W,也可以上下和左右组合使用,达到不同的对齐效果,如:

  

from tkinter import *

master = Tk()
master.geometry('300x130')
e1 = Button(master,text='First',height=2,width=7,fg='red')
e2 = Button(master,text='Second',height=3,width=13,fg='blue')
e1.grid(row=0, column=0)
e2.grid(row=0, column=1) mainloop()

窗口内有两个按钮,宽度高度均不相同,可以看到它们的对齐方式是居中显示:

如果想让它们在同一行上下对齐,可以设置sticky=N+S,意为顶端和低端都要对齐:

  

from tkinter import *

master = Tk()
master.geometry('300x130')
e1 = Button(master,text='First',height=2,width=7,fg='red')
e2 = Button(master,text='Second',height=3,width=13,fg='blue')
e1.grid(row=0, column=0,sticky=N+S)
e2.grid(row=0, column=1,sticky=N+S) mainloop()

  总结如下:

  sticky=N/S/E//W:顶端对齐/底端对齐/右对齐/左对齐

  sticky=N+S:拉伸高度,使其在水平方向上顶端和底端都对齐

  sticky=E+W,拉伸宽度,使其在垂直方向上左边界和右边界都对齐

  sticky=N+S+E:拉伸高度,使其在水平方向上对齐,并将控件放在右边(当两个控件放在同一行同一列时效果明显)

  .......

  还有诸如此类的组合方式根据需要调整。

  在Tkinter模块中,各种控件的大小计量单位并不尽相同,可能需要反复调整才能达到最佳效果。

  注:以上程序代码适用于python3.4.3版本,python2.x可能需要稍作改变。

  

        

Python Tkinter模块 Grid(grid)布局管理器参数详解的更多相关文章

  1. GridBagLayout布局管理器应用详解

    http://www.cnblogs.com/kungfupanda/p/7220217.html GridBagLayout布局管理器应用详解 很多情况下,我们已经不需要通过编写代码来实现一个应用程 ...

  2. JAVA中GridBagLayout布局管理器应用详解

    很多情况下,我们已经不需要通过编写代码来实现一个应用程序的图形界面,而是通过强大的IDE工具通过拖拽辅以简单的事件处理代码即可很轻松的完成.但是我们不得不面对这样操作存在的一些问题,有时候我们希望能够 ...

  3. python之tkinter使用-Grid(网格)布局管理器

    # 使用tkinter编写登录窗口 # Grid(网格)布局管理器会将控件放置到一个二维的表格里,主控件被分割为一系列的行和列 # stricky设置对齐方式,参数N/S/W/E分别表示上.下.左.右 ...

  4. 系统批量运维管理器Fabric详解

    系统批量运维管理器Fabric详解 Fabrici 是基于python现实的SSH命令行工具,简化了SSH的应用程序部署及系统管理任务,它提供了系统基础的操作组件,可以实现本地或远程shell命令,包 ...

  5. PHPFastCGI进程管理器PHP-FPM详解

    PHP-FPM是一个PHPFastCGI进程管理器,是只用于PHP的.      PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中.必须将它patch到你的PH ...

  6. python 函数及变量作用域及装饰器decorator @详解

    一.函数及变量的作用   在python程序中,函数都会创建一个新的作用域,又称为命名空间,当函数遇到变量时,Python就会到该函数的命名空间来寻找变量,因为Python一切都是对象,而在命名空间中 ...

  7. 系统批量运维管理器pexpect详解

    一.pexpect介绍 pexpect可以理解成Linux下的expect的Python封装,通过pexpect我们可以实现对ssh.ftp.passwd.telnet等命令进行自动交互,而无需人工干 ...

  8. 系统批量运维管理器paramiko详解

    一.paramiko介绍 paramiko是基于Python实现的SSH2远程安全连接,支持认证及密钥方式.可以实现远程命令执行.文件传输.中间SSH代理等功能,相对于Pexpect,封装的层次更高, ...

  9. Python re 模块findall() 函数返回值展现方式详解

    findall 函数: 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表. 注意: match 和 search 是匹配一次 findall 匹配所有,mat ...

随机推荐

  1. 用echartsjs 实现动态绘制折线、柱状等图形,并实现多图联动效果

    echarts对于大数据处理后绘制折线图,柱形图等等的效果和速度都很好.下面我们介绍 怎么把封装的数据列表解析出来,动态绘图,并且实现鼠标联动效果引入js文件: <script type=&qu ...

  2. 程序员的自我救赎---11.3:WinService服务

    <前言> (一) Winner2.0 框架基础分析 (二)PLSQL报表系统 (三)SSO单点登录 (四) 短信中心与消息中心 (五)钱包系统 (六)GPU支付中心 (七)权限系统 (八) ...

  3. SpringBoot多数据源配置

    准备环境: jdk1.8 eclipse tomcat8.0 第一步:在配置文件添加如下信息: spring.datasource.primary.url=jdbc:mysql://localhost ...

  4. JavaWeb 之文件的上传下载

    又到了每周更新博客的时候了,每看到自己发布的随笔阅读量上涨的时候就特别开心,我也会尽自己的努力提高自己的水平,总结出通俗易读的学习笔记,还望大家能多多支持!!! ------------------- ...

  5. 框架原理第一讲,熟悉常用的设计方式.(以MFC框架讲解)

    框架原理第一讲,熟悉常用的设计方式.(以MFC框架讲解) 一丶什么是框架,以及框架的作用 什么是框架? 框架,简而言之就是把东西封装好了,使用框架开发可以快速开发程序,例如MFC程序的双击写代码. 为 ...

  6. QScintilla 编译

    直接上英文了,不翻译了.看不懂的可以留言哈. ———————————————————————————————————————— Installation As supplied QScintilla ...

  7. 酷狗歌曲缓存kgtemp转mp3工具

    一直用网易音乐听歌,不过网易的歌曲版权确实是少了一些,在酷狗上可以找到,但收费歌曲只能试听不能下载. 寻找方案 从设置里可以看出,酷狗会设置缓存目录,试听的歌曲存放到这个缓存里. 打开缓存目录: 可以 ...

  8. html5视频标签

    <video width="200" height="200" poster="img/shamo.jpg" src="vi ...

  9. poj 2299 Ultra-QuickSort(树状数组求逆序数+离散化)

    题目链接:http://poj.org/problem?id=2299 Description In this problem, you have to analyze a particular so ...

  10. Mac OS 终端利器 iTerm2

    之前一直使用 Mac OS 自带的终端,用起来虽然有些不太方便,但总体来说还是可以接受的,是有想换个终端的想法,然后今天偶然看到一个终端利器 iTerm2,发现真的很强大,也非常的好用,按照网上配置了 ...