GUI tkinter (pack、grid、place)布局篇
"""
1、其实我们已经接触过 tkinter 的一种布局,就是 pack 布 局,它非常简单,我们不用做过多的设置,直接使用一个 pack 函数就可以了。
2、grid 布局:grid 可以理解为网格,或者表格,它可以把 界面设置为几行几列的网格,我们在网格里插入我们想要 的元素。
这种布局的好处是不管我们如何拖动窗口,相对 位置是不会变化的,而且这种布局也超简单。
3、place 布局:它直接使用死板的位置坐标来布局,这样做 的最大的问题在于当我们向窗口添加一个新部件的时候, 又得重新测一遍数据,
且我们不能随便地变大或者缩小窗口,否则,可能会导致混乱。
""" # pack布局
"""
1、pack函数布局的时候,默认先使用的放到上面,然后依次向下排列,默认方式它会给我们的组件一个自认为合适的位置和大小。
2、pack函数也可以接受几个参数,side参数,指定了它停靠在哪个方向,可以为LEFT,TOP,RIGHT,BOTTOM,分别代表左,上,右,下,
它的fill参数可以是X,Y,BOTH,NONE即在水平方向填充,竖直方向填充,水平和竖直方向填充和不填充。
3、它的expand参数可以是YES 和 NO,它的anchor参数可以是N,E,S,W(这里的NESW分别表示北东南西,这里分别表示上右下左)以及他们的组合或者是CENTER(表示中间)
4、它的ipadx表示的是内边距的x方向,它的ipady表示的是内边距的y的方向,padx表示的是外边距的x方向,pady表示的是外边距的y方向。
""" from tkinter import * root = Tk()
Button(root,text= "A").pack(side = LEFT, expand = YES, fill = Y)
Button(root,text= "B").pack(side = TOP, expand = YES, fill = BOTH)
Button(root,text= "C").pack(side = RIGHT, expand = YES, fill = NONE,anchor = NE)
Button(root,text= "D").pack(side = LEFT, expand = NO, fill = Y)
Button(root,text= "E").pack(side = TOP, expand = NO, fill = BOTH)
Button(root,text= "F").pack(side = BOTTOM, expand = YES)
Button(root,text= "G").pack(anchor= SE) root.mainloop()
运行结果如下:

# grid布局
"""
1、使用grid布局的时候,我们使用grid函数,在里面指定两个参数,用row表示行,用column表示列,其中值得注意的是row和column的编号都从0开始。
2、grid函数还有个sticky参数,它可以用N,E,S,W表示上右下左,它决定了这个组件是从哪个方向开始的。
3、grid布局直接用后面的行和列的数字来指定了它位于哪个位置,而不必使用其他参数。
5、grid函数也支持诸如ipadx,ipady,padx,pady,他们的意思和pack函数一样,默认边距是0。
6、它还支持参数比如rowspan,表示跨越的行数,columnspan表示跨越的列数。
7、它还有一些属性,可以在以后慢慢使用。
"""
from tkinter import * root = Tk()
Label(root,text = "账号:").grid(row = 0, sticky = W)
# Entry 表示“输入框”
Entry(root).grid(row = 0, column = 1, sticky = E) Label(root,text = "密码:").grid(row = 1, sticky = W)
Entry(root).grid(row = 1, column = 1, sticky = E) Button(root,text = "登录").grid(row = 2, column = 1, sticky = E)
root.mainloop()
运行结果如下:

# place布局 """
1、它使用place函数,它分为绝对布局和相对布局,绝对布局使用x和y参数,相对布局使用relx,rely,relheight和relwidth参数。
2、该方法不推荐大家使用。
"""
GUI tkinter (pack、grid、place)布局篇的更多相关文章
- python之tkinter使用-Grid(网格)布局管理器
# 使用tkinter编写登录窗口 # Grid(网格)布局管理器会将控件放置到一个二维的表格里,主控件被分割为一系列的行和列 # stricky设置对齐方式,参数N/S/W/E分别表示上.下.左.右 ...
- tkinter之grid布局管理器详解
在很久之前,我发过一篇<tkinter模块常用参数>,里面已经几乎涵盖了tkinter的大部分教程. 好吧,其实也就是上一篇而已啦. 所谓布局,就是指控制窗体容器中各个控件(组件)的位置关 ...
- Python Tkinter模块 Grid(grid)布局管理器参数详解
在使用Tkinter模块编写图像界面时,经常用到pack()和grid()进行布局管理,pack()参数较少,使用方便,是最简单的布局,但是当控件数量较多时,可能需要使用grid()进行布局(不要在同 ...
- Python GUI - tkinter
目录: Tkinter 组件 标准属性 几何管理 代码实例: 1. Label & Button 2. Entry & Text 3.Listbox列表 4.Radiobutton单选 ...
- Tkinter教程之Text(2)篇
本文转载自:http://blog.csdn.net/jcodeer/article/details/1811347 '''Tkinter教程之Text(2)篇''''''6.使用tag来指定文本的属 ...
- Python GUI - Tkinter tkMessageBox
Python GUI - Tkinter tkMessageBox: tkMessageBox模块用于显示在您的应用程序的消息框.此模块提供了一个功能,您可以用它来显示适当的消息 tkMess ...
- 深入css布局篇(3)完结 — margin问题与格式化上下文
深入css布局(3) - margin问题与格式化上下文 在css知识体系中,除了css选择器,样式属性等基础知识外,css布局相关的知识才是css比较核心和重要的点.今天我们来深入学习一下 ...
- 转:Tkinter教程之Text(2)篇
'''Tkinter教程之Text(2)篇''''''6.使用tag来指定文本的属性'''#创建一个指定背景颜色的TAG# -*- coding: cp936 -*-from Tkinter impo ...
- CSS Grid网格布局全攻略
CSS Grid网格布局全攻略 所有奇技淫巧都只在方寸之间. 几乎从我们踏入前端开发这个领域开始,就不停地接触不同的布局技术.从常见的浮动到表格布局,再到如今大行其道的flex布局,css布局技术一直 ...
随机推荐
- c++调试在容器释放内存时报Unknown Signal 或 Trace/breakpoint trap异常
在做一道题时,用到的板子中出现了很多的容器的使用,,一开始都是开MAXN大小的容器,,但是有几率出现程序运行完后不正常退出,, 在多次尝试断点调试后,发现主要的异常是程序在结束时,要进行资源的释放,, ...
- Nginx使用GeoIP模块来限制地区访问
举例比如限制泰国地区的IP访问: 前提条件,安装了http geoip 或stream geoip模块的Nginx Plus或者开源nginx Maxmind的GeoLite Legacy数据库 1. ...
- SpringBoot+SpringMVC+MyBatis快速整合搭建
作为开发人员,大家都知道,SpringBoot是基于Spring4.0设计的,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程.另外Spr ...
- 十天快速入门Python
课程导学 001 课程定位和目标 002 课程导学 第一部分 Python快速入门 第1天 Python基本语法元素 003 Python基本语法元素 004 程序设计基本方法 005 Python开 ...
- Linux OOM-killer(内存不足时kill高内存进程的策略)
OOM_killer是Linux自我保护的方式,当内存不足时不至于出现太严重问题,有点壮士断腕的意味 在kernel 2.6,内存不足将唤醒oom_killer,挑出/proc/<pid> ...
- 最佳内存缓存框架Caffeine
Caffeine是一种高性能的缓存库,是基于Java 8的最佳(最优)缓存框架. Cache(缓存),基于Google Guava,Caffeine提供一个内存缓存,大大改善了设计Guava's ca ...
- Docker入门到实践——简单操作
1.对比传统虚拟机总结 特性 容器 虚拟机 启动 秒级 分钟级 硬盘使用 一般为MB 一般为GB 性能 接近原生 弱于 系统支持量 单机支持上千个容器 一般几十个 2.基本概念 Docker包括三个基 ...
- golang中Array与Slice
在golang中有数组和Slice两种数据结构,Slice是基于数组的实现,是长度动态不固定的数据结构,本质上是一个对数组字序列的引用,提供了对数组的轻量级访问.那么在go的函数中以数组或Slice为 ...
- 从零开始入门 K8s| K8s 的应用编排与管理
作者 | 张振 阿里巴巴高级技术专家 一.资源元信息 1. Kubernetes 资源对象 我们知道,Kubernetes 的资源对象组成:主要包括了 Spec.Status 两部分.其中 Spec ...
- StringBulider类
StringBulider类创建的字符串同样可以对字符串进行修改: public class StringBuliderDemo { public static void main(String[] ...