python tkinter组件摆放方式详解


Posted in Python onSeptember 16, 2019

1.最小界面组成

# 导入tkinter模块
import tkinter
# 创建主窗口对象
root = tkinter.Tk()
# 设置窗口大小(最小值:像素)
root.minsize(300,300)
# 创建一个按钮组件
btn = tkinter.Button(root,text = '屠龙宝刀,点击送')
btn.pack()
# 加入消息循环
root.mainloop()

设置初始化界面大小

# 设置初始化界面大小
root.geometry('300x400')

2.组件的摆放方式:

1.pack()方式 ->方向/方位摆放方法

2.grid()方式 ->网格摆放方法

3.place()方式 ->定位摆放方法

python tkinter组件摆放方式详解

3.pack布局介绍

pack()方式:

side 设置组件相对于父组件的摆放位置

# 导入tkinter模块
import tkinter
# 创建主窗口对象
root = tkinter.Tk()
# 设置窗口大小(最小值:像素)
root.minsize(500,500)
# 创建一个按钮组件
btn0 = tkinter.Button(root,text = '按钮1')
# 默认上边或 side = 'top'
btn0.pack()
btn1 = tkinter.Button(root,text = '按钮1')
# 下面
btn1.pack(side = 'bottom')
btn2 = tkinter.Button(root,text = '按钮2')
# 左边
btn2.pack(side = 'left')
btn3 = tkinter.Button(root,text = '按钮2')
# 右边
btn3.pack(side = 'right')
# 加入消息循环
root.mainloop()

ipadx,ipady 设置组件的内部间距

btn0 = tkinter.Button(root,text = '按钮1')
# 设置按钮中文字到边缘的间距
btn0.pack(ipadx = 20,ipady = 20)

padx,pady 设置多个组件外部间距

btn0 = tkinter.Button(root,text = '按钮1')
# padx设置组件外部左右间距,pady设置组件外部上下间距
btn0.pack(padx = 20,pady = 20)

fill 设置按钮站一行或者一列

btn1 = tkinter.Button(root,text = '屠龙宝刀点击就送!')# 该组件站水平方向的最大位置btn.pack(fill = 'x')btn2 = tkinter.Button(root,text = '屠龙宝刀点击就送!')# 该组件站垂直方向的最大位置,但必须是side = 'right'或'left'才会生效btn2.pack(fill = 'y',side = 'right')

expand 设置side是否失效

btn1 = tkinter.Button(root,text = '屠龙宝刀点击就送!')
# yes时side失效,按钮位于窗口中间,按钮占用所有水平和垂直的空间,此时fill = both 按钮站全部空间
btn1.pack(expand = 'yes',fill = 'both')

注意:仅仅使用pack无法实现表格方式,必须借助Franme组件才可以实现,非常复杂。

grid()方式:

row

设置行数 默认为0

column

设置列数 默认为0

btn1 = tkinter.Button(root,text = '按钮1')
btn1.grid()
btn2 = tkinter.Button(root,text = '按钮2')
btn2.grid(row = 1,column = 1)# 设置按钮位置
btn3 = tkinter.Button(root,text = '按钮3')
btn3.grid(row = 0,column = 1)

rowspan

设置跨行数量

cloumnspan

设置跨列数量

ipadx,ipady

设置组件内部间距

btn1 = tkinter.Button(root,text = '按钮1')
btn1.grid()
btn2 = tkinter.Button(root,text = '按钮2')
btn2.grid(row = 1,column = 0)# 设置按钮位置
btn2 = tkinter.Button(root,text = '按钮2')
btn2.grid(row = 0,column = 2,rowspan = 2,ipady = 15)
btn2 = tkinter.Button(root,text = '按钮2')
btn2.grid(row = 2,column = 0,columnspan = 3,ipadx = 20)

place()方式:

绝对定位布局:

x

设置距离左上角的水平长度

单位都是像素

y

设置距离左上角的垂直高度

单位都是像素

width

设置组件所占据的宽度

单位都是像素

height

设置组件所占据的高度

单位都是像素

btn = tkinter.Button(root,text = '按钮')
# 位置距离左边100像素,距离上边20像素
btn.place(x = 100,y = 20)
btn1 = tkinter.Button(root,text = '按钮1')
# 设置按钮的宽度和高度
btn1.place(x = 100,y = 100,width = 100,height = 100)

相对定位布局:

relx

设置距离左上角的水平长度

取值(0-1)

rely

设置距离左上角的垂直高度

取值(0-1) 

relwidth

设置组件所占据的宽度

取值(0-1)

relheight

设置组件所占据的高度

取值(0-1)

以上属性设置都是相对于界面宽度或者高度的百分比,可以更具界面的大小的改变而改变~!

!!!禁止同时使用两种摆放方式

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python学习之第三方包安装方法(两种方法)
Jul 30 Python
Django的信号机制详解
May 05 Python
python扫描proxy并获取可用代理ip的实例
Aug 07 Python
python中pip的使用和修改下载源的方法
Jul 08 Python
python实现的生成word文档功能示例
Aug 23 Python
Pyecharts绘制全球流向图的示例代码
Jan 08 Python
python实现opencv+scoket网络实时图传
Mar 20 Python
django实现后台显示媒体文件
Apr 07 Python
Python通过文本和图片生成词云图
May 21 Python
python写文件时覆盖原来的实例方法
Jul 22 Python
Python使用Pygame绘制时钟
Nov 29 Python
详解Python生成器和基于生成器的协程
Jun 03 Python
python动态视频下载器的实现方法
Sep 16 #Python
python tkinter基本属性详解
Sep 16 #Python
Django之使用内置函数和celery发邮件的方法示例
Sep 16 #Python
django中使用事务及接入支付宝支付功能
Sep 15 #Python
Django中的FBV和CBV用法详解
Sep 15 #Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
Sep 15 #Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
Sep 15 #Python
You might like
PHP 一个随机字符串生成代码
2010/05/26 PHP
一个PHP二维数组排序的函数分享
2014/01/17 PHP
phpcms中的评论样式修改方法
2016/10/21 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
初探jquery——表单应用范例
2007/02/20 Javascript
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
js中Image对象以及对其预加载处理示例
2013/11/20 Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
2013/11/21 Javascript
jQuery获得document和window对象宽度和高度的方法
2015/03/25 Javascript
JavaScript中length属性的使用方法
2015/06/05 Javascript
node.js实现快速截图
2016/08/27 Javascript
easyui messager alert 三秒后自动关闭提示的实例
2016/11/07 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
2018/03/06 Javascript
详解Vue源码学习之callHook钩子函数
2018/07/25 Javascript
nodejs图片处理工具gm用法小结
2018/12/12 NodeJs
vue模式history下在iis中配置流程
2019/04/17 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
javascript实现的字符串转换成数组操作示例
2019/06/13 Javascript
vue如何实现自定义底部菜单栏
2019/07/01 Javascript
vue使用swiper.js重叠轮播组建样式
2019/11/14 Javascript
python插入排序算法的实现代码
2013/11/21 Python
Python压缩和解压缩zip文件
2015/02/14 Python
python一键升级所有pip package的方法
2017/01/16 Python
使用Python实现从各个子文件夹中复制指定文件的方法
2018/10/25 Python
python 反编译exe文件为py文件的实例代码
2019/06/27 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
2020/05/23 Python
详解Django ORM引发的数据库N+1性能问题
2020/10/12 Python
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
Claire’s法国:时尚配饰、美容、珠宝、头发
2021/01/16 全球购物
讲文明树新风演讲稿
2014/05/12 职场文书
王力宏牛津大学演讲稿
2014/05/22 职场文书
百日安全生产活动总结
2014/07/05 职场文书
助学贷款贫困证明
2014/09/23 职场文书
浅析Redis Sentinel 与 Redis Cluster
2021/06/24 Redis
解决mysql的int型主键自增问题
2021/07/15 MySQL