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组件,布局管理器能够相互嵌套使用,以下是布局管理器的类 ...
随机推荐
- 从MySQL高可用引出对高可用架构设计的一些思考
高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间. 假设系统一直能够提供服务,我们说系统的可用性是100%.如果 ...
- mySql分组排序
mysql 排序学习---mysql 1.建表语句 CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varc ...
- VMware的linux虚拟机实现和windows的文件共享
使用的centos7和windows10,在虚拟机centos7中是root身份.由于是第一次用没有界面的linux,可谓是困难重重…… 一 打开VMware,然后选中你的虚拟机,我的是centos7 ...
- django 模板语言的注释操作
Django在HTML里面书写的模板语言不能使用这种方法注释,这样注释实际依然有效 <!--{% if text %}--> 第一种使用模板标签{% comment %}注释,这是块注释 ...
- JavaMailSender怎么发送163和qq邮件
https://blog.csdn.net/Tracycater/article/details/73441010 引入Maven依赖包 <dependency> <groupId& ...
- session是什么时候创建的
总结:session不是一打开网站就会立刻建立.它的建立需要基于下面两个条件中的任意一个: 1:在servlet中手动调用 HttpSession session = request.getSessi ...
- Glide图片框架
//加载圆形图片Glide.with(this).load(WSCAppStatic.WEB_KEFU_PHOTO_URL+ "?usercode=8120000315") .as ...
- DVWA之Brute Force教程
---恢复内容开始--- Brute Force暴力破解模块,是指黑客密码字典,使用穷举的方法猜出用户的口令,是一种广泛的攻击手法. LOW low级别的漏洞利用过程 1.使用burp suite工具 ...
- rxjava封装,RxBus封装(上线项目集成,声明周期管理,处理溢出内存,支持同时多个请求。)
Github地址 RxLibrary工程:1.rxjava2 + retrofit2的封装,常用的请求(Get,Post,文件上传,文件下载),防止内存泄漏,简单便捷,支持自定义loading等属性. ...
- 【读书笔记】构建之法(CH7~CH8)
MSF九大原则: 1. 推动信息共享与沟通:“谐”,Alert 2. 为共同的远景而工作:目标明确—用户/老板 3. 充分授权和信任: 4. 各司其职,对项目共同负责: 5. 交付增量的价值: 6. ...