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实现的数据结构与算法之链表详解
Apr 22 Python
详细解读Python的web.py框架下的application.py模块
May 02 Python
python开发环境PyScripter中文乱码问题解决方案
Sep 11 Python
Python常用特殊方法实例总结
Mar 22 Python
对python中UDP,socket的使用详解
Aug 22 Python
python循环嵌套的多种使用方法解析
Nov 29 Python
Python实现i人事自动打卡的示例代码
Jan 09 Python
python程序需要编译吗
Jun 19 Python
Python selenium环境搭建实现过程解析
Sep 08 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
Jan 27 Python
python turtle绘制多边形和跳跃和改变速度特效
Mar 16 Python
python Tkinter模块使用方法详解
Apr 07 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之第五天
2006/10/09 PHP
PHP中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
php数组添加与删除单元的常用函数实例分析
2015/02/16 PHP
php实现CSV文件导入和导出
2015/10/24 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
PHP多进程编程实例详解
2017/07/19 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
2019/10/11 PHP
PHP执行普通shell命令流程解析
2020/08/24 PHP
用JS实现的一个include函数
2007/07/21 Javascript
JS实现网站菜单拖拽移位效果的方法
2015/09/24 Javascript
原生js实现移动端瀑布流式代码示例
2015/12/18 Javascript
NodeJS中的MongoDB快速入门详细教程
2016/11/11 NodeJs
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
JS中的作用域链
2017/03/01 Javascript
从零开始学习Node.js系列教程三:图片上传和显示方法示例
2017/04/13 Javascript
jQuery替换节点元素的操作方法
2018/03/18 jQuery
浅谈node中的cluster集群
2018/06/02 Javascript
element form 校验数组每一项实例代码
2019/10/10 Javascript
解决vue bus.$emit触发第一次$on监听不到问题
2020/07/28 Javascript
Python的垃圾回收机制深入分析
2014/07/16 Python
Python中datetime模块参考手册
2017/01/13 Python
老生常谈Python序列化和反序列化
2017/06/28 Python
Sanic框架路由用法实例分析
2018/07/16 Python
python中struct模块之字节型数据的处理方法
2019/08/27 Python
python线程的几种创建方式详解
2019/08/29 Python
一行Python代码制作动态二维码的实现
2019/09/09 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
2020/04/26 Python
css3绘制百度的小度熊
2018/10/29 HTML / CSS
伦敦平价潮流珠宝首饰品牌:Astrid & Miyu
2016/10/10 全球购物
锐步香港官方网上商店:Reebok香港
2020/11/05 全球购物
2015年档案管理员工作总结
2015/05/13 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
教研活动主持词
2015/07/03 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书
早安问候语大全
2015/11/10 职场文书
2016党员干部反腐倡廉心得体会
2016/01/13 职场文书