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程序员开发中常犯的10个错误
Jul 07 Python
Python最基本的数据类型以及对元组的介绍
Apr 14 Python
基于python yield机制的异步操作同步化编程模型
Mar 18 Python
Python利用带权重随机数解决抽奖和游戏爆装备问题
Jun 16 Python
Python实现嵌套列表及字典并按某一元素去重复功能示例
Nov 30 Python
Python时间戳使用和相互转换详解
Dec 11 Python
Python实现爬虫爬取NBA数据功能示例
May 28 Python
matplotlib.pyplot绘图显示控制方法
Jan 15 Python
Python一个简单的通信程序(客户端 服务器)
Mar 06 Python
Python 写入训练日志文件并控制台输出解析
Aug 13 Python
python属于软件吗
Jun 18 Python
Python大批量搜索引擎图像爬虫工具详解
Nov 16 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 Socket技术
2013/08/02 PHP
PHP Header失效的原因分析及解决方法
2016/11/16 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
2019/06/14 PHP
php模式设计之观察者模式应用实例分析
2019/09/25 PHP
innerHTML,outerHTML,innerText,outerText的用法及区别解析
2013/12/16 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
Flash图片上传组件 swfupload使用指南
2015/03/14 Javascript
基于jQuery ligerUI实现分页样式
2016/09/18 Javascript
微信小程序实战之轮播图(3)
2017/04/17 Javascript
Vue开发中整合axios的文件整理
2017/04/29 Javascript
详解使用vue实现tab 切换操作
2017/07/03 Javascript
js实现各浏览器全屏代码实例
2018/07/03 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
2020/02/10 Javascript
jquery更改元素属性attr()方法操作示例
2020/05/22 jQuery
Vue-cli 移动端布局和动画使用详解
2020/08/10 Javascript
vue修改Element的el-table样式的4种方法
2020/09/17 Javascript
Python 详解基本语法_函数_返回值
2017/01/22 Python
Django中针对基于类的视图添加csrf_exempt实例代码
2018/02/11 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
python SQLAlchemy 中的Engine详解
2019/07/04 Python
详解Python并发编程之从性能角度来初探并发编程
2019/08/23 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
2019/12/05 Python
django rest framework serializers序列化实例
2020/05/13 Python
python获取百度热榜链接的实例方法
2020/08/25 Python
纯CSS实现预加载动画效果
2017/09/06 HTML / CSS
CSS3 实现弹跳的小球动画
2020/10/26 HTML / CSS
汉森批发:Hansen Wholesale
2018/05/24 全球购物
斯洛伐克电子产品购物网站:DATART
2020/04/05 全球购物
高中生自我评价个人范文
2013/11/09 职场文书
数控专业个人求职信范文
2014/02/05 职场文书
装饰活动策划方案
2014/02/11 职场文书
房屋买卖协议书
2014/04/10 职场文书
党性分析材料格式
2014/12/19 职场文书
主持人开幕词
2015/01/29 职场文书
部门经理迟到检讨书
2015/02/16 职场文书