tkinter学习-布局管理器
阅读目录
- pack 是按照添加顺序排列的组件
- grid 是按照行/列形式排序的组件
- place 允许程序员指定组件的大小和位置
pack:
说明:适用于少量的简单的组件的排列
fill:这个选项是告诉窗口管理器该组件将填充整个分配给它的空间,BOTH表示同时横向和纵向扩展,X表示横向,Y表示纵向
from tkinter import *
root = Tk()
Label(root,text='',bg='green').pack(fill=X)
Label(root,text='',bg='red').pack(fill=X)
Label(root,text='',bg='yellow').pack(fill=X)
Label(root,text='',bg='blue').pack(fill=X)
mainloop()
结果:

side:这个选项是告诉窗口该组件的位置,同时有四个值
from tkinter import *
root = Tk()
Label(root,text='',bg='green').pack(side=LEFT)
Label(root,text='',bg='red').pack(side=TOP)
Label(root,text='',bg='yellow').pack(side=BOTTOM)
Label(root,text='',bg='blue').pack(side=RIGHT)
mainloop()
结果:

grid:
说明:只需告诉他你想要将组件放置的位置(行/列,row指定行,cloumn指定列)
from tkinter import *
root = Tk()
Label(root,text='用户名').grid(row=0)
Label(root,text='密码').grid(row=1)
Entry(root).grid(row=0,column=1)
Entry(root,show='*').grid(row=1,column=1)
mainloop()
结果:

默认的情况下组件会居中的显示在网格中,可以用sticky选项修改这个特征,值为 E,W,S,N(东西南北)
Label(root,text='用户名').grid(row=0,sticky=W)
Label(root,text='密码').grid(row=1,sticky=W)
想要用几个网格放置一个组件,只需指定rowspan(跨行)和columnspan(跨列)即可
from tkinter import *
root = Tk()
Label(root,text='用户名').grid(row=0,sticky=W)
Label(root,text='密码').grid(row=1,sticky=W)
photo = PhotoImage(file='3.gif')
Label(root,image=photo).grid(row=0,column=2,rowspan=2)
Entry(root).grid(row=0,column=1)
Entry(root,show='*').grid(row=1,column=1)
Button(root,text='提交',width=10).grid(row=2,columnspan=3,pady=5,padx=10)
mainloop()
结果:

place:
说明:这个布局管理器可以让你使你的组件放到任何你想放到的地方,x,y是对应的坐标,anchor是那个方位对应这个坐标,值为 E,W,S,N(东西南北)
from tkinter import *
root = Tk()
root.title('山丘')
root.geometry('450x400')
Label(root,text='用户名:').place(x=100,y=170)
Label(root,text='密码:').place(x=100,y=230)
photo = PhotoImage(file='welcome.gif')
Label(root,image=photo).place(x=0,y=0)
Entry(root).place(x=190,y=170)
Entry(root,show='*').place(x=190,y=230)
Button(root,text='提交',width=10).place(x=170,y=300)
mainloop()
结果:

若让一个组件覆盖另一个组件,place()也可以帮你实现
from tkinter import *
root = Tk()
def show():
pass
photo = PhotoImage(file='8.gif')
Label(root,image=photo).pack()
Button(root,text='点我',command=show).place(x=10,y=10)
mainloop()
结果:

参考文献:
小甲鱼的python教学视频
tkinter学习-布局管理器的更多相关文章
- Python基础=== Tkinter Grid布局管理器详解
本文转自:https://www.cnblogs.com/ruo-li-suo-yi/p/7425307.html @ 箬笠蓑衣 Grid(网格)布局管理器会将控件放置到一个二维的表 ...
- Python Tkinter Grid布局管理器详解
Grid(网格)布局管理器会将控件放置到一个二维的表格里.主控件被分割成一系列的行和列,表格中的每个单元(cell)都可以放置一个控件. 注意:不要试图在一个主窗口中混合使用pack和grid (1) ...
- 13.Quick QML-RowLayout、ColumnLayout、GridLayout布局管理器介绍、并通过GridLayout设计的简易网站导航界面
上章我们学习了:12.Quick QML-QML 布局(Row.Column.Grid.Flow和嵌套布局) .Repeater对象,本章我们继续来学习布局管理器 1.RowLayout.Column ...
- Tkinter 的三大布局管理器 pack、grid 和 place用法汇总
学习python的tkinter免不了要对各个组件进行位置的排放与设定,常用的布局管理器有grid,pack和place.这三种均用于同一父组件下的组件布局,但是也是有区别的,先看下他们各自的含义吧. ...
- Tkinter布局管理器
Layout management in Tkinter 原英文教程地址:zetcode.com In this part of the Tkinter tutorial, we introduce ...
- tkinter之grid布局管理器详解
在很久之前,我发过一篇<tkinter模块常用参数>,里面已经几乎涵盖了tkinter的大部分教程. 好吧,其实也就是上一篇而已啦. 所谓布局,就是指控制窗体容器中各个控件(组件)的位置关 ...
- python之tkinter使用-Grid(网格)布局管理器
# 使用tkinter编写登录窗口 # Grid(网格)布局管理器会将控件放置到一个二维的表格里,主控件被分割为一系列的行和列 # stricky设置对齐方式,参数N/S/W/E分别表示上.下.左.右 ...
- Qt 学习之路 2(11):布局管理器
Home / Qt 学习之路 2 / Qt 学习之路 2(11):布局管理器 Qt 学习之路 2(11):布局管理器 豆子 2012年9月4日 Qt 学习之路 2 70条评论 所谓 GUI 界 ...
- Android学习笔记(10).布局管理器
布局管理器的几个类都是ViewGroup派生的,用于管理组件的分布和大小,使用布局管理器能够非常好地解决屏幕适配问题. 布局管理器本身也是一个UI组件,布局管理器能够相互嵌套使用,以下是布局管理器的类 ...
随机推荐
- BackgroundWorker的使用一二(可视化编程,开始后台工作,报告进度,取消后台工作等)
C# 提供了BackgroundWorker功能非常强大,可以将某项工作放到后台运行,可以让后台报告进度,可以取消后台工作...... BackgroundWorker的上述功能是通过 1. 三个主要 ...
- android webview 视频相关
//设置为false则可以自动播放页面音视频 页面必须设置autoplay或者调用document.getElementById("video").play(); $(" ...
- B.小A与任务
链接:https://ac.nowcoder.com/acm/contest/369/B 题意: 小A手头有 n 份任务,他可以以任意顺序完成这些任务,只有完成当前的任务后,他才能做下一个任务 第 i ...
- 牛客练习赛42A(字符串)
传送门 结论是:一定是选取最长的那个AB连续子串. 把题面要求的a*b + a + b转化一下成(a + 1)*(b + 1) - 1,即可发现如果选取前缀后缀不连续的两段作为答案,则显然有更优解,即 ...
- springMVC-接收数据-参数绑定
接收数据-参数绑定 #Method Arguments概观 Same in Spring WebFlux The table below shows supported controller meth ...
- 如何正确在IDEA 里maven构建的项目中引入lib的jar包(图文详解)
不多说,直接上干货! 问题详情 以下是我,maven构建出来的最新spark2.2.0-bin-hadoop2.6的项目. 有些依赖包,maven还是无法一次性满足,所以,得手动加入lib的jar包. ...
- javaScript面向对像
1.创建对象 <script type="text/javascript"> function Flower(name,addre) { this.name=name; ...
- (wp8.1开发)添加数据(SQLite)库到app
wp8.1只支持SQLite. 如何添加SQLite支持请看这里 我这里要说的是如何添加自己的数据库 1.添加数据库到项目中 2.右击选择属性 3.将生成操作改成内容 4.直接就可以引用数据库文件了
- Java之内部类、包及代码块
个人通俗理解: 1.内部类:有点类似于写在父类中的子类,根据位置不一样为不同的名字,和相应的访问方式不同:不过要访问外部类的话,需要充分运用好this(本类)的这个关键字:要是需要快速的创建子类对象的 ...
- 总结React关于require的问题
我需要实现的是当登录页面传过来的sex值为1则性别一栏的图片修改为boy.png如果为0性别图片则显示为girl.png‘ 最开始是这么写的为了让他成为变量 所以不行ok我们回到React的生命周期函 ...