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 获取文件列表(或是目录例表)
Mar 25 Python
python查询sqlite数据表的方法
May 08 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
Dec 18 Python
浅析python中numpy包中的argsort函数的使用
Aug 30 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
Dec 20 Python
Python实现深度遍历和广度遍历的方法
Jan 22 Python
python实现年会抽奖程序
Jan 22 Python
django实现用户注册实例讲解
Oct 30 Python
Python requests获取网页常用方法解析
Feb 20 Python
python如何保存文本文件
Jun 07 Python
python 用struct模块解决黏包问题
Nov 07 Python
Python函数式编程中itertools模块详解
Sep 15 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
回首过去10年中最搞笑的10部动漫,哪一部让你节操尽碎?
2020/03/03 日漫
PHP批量删除、清除UTF-8文件BOM头的代码实例
2014/04/14 PHP
php将csv文件导入到mysql数据库的方法
2014/12/24 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
php layui实现前端多图上传实例
2019/07/30 PHP
thinkPHP框架乐观锁和悲观锁实例分析
2019/10/30 PHP
JavaScript自定义DateDiff函数(兼容所有浏览器)
2012/03/01 Javascript
PHP开发者必须掌握的6个关键字
2014/04/14 Javascript
全面解析node 表单的图片上传
2016/11/21 Javascript
angularJS之$http:与服务器交互示例
2017/03/17 Javascript
vue实现留言板todolist功能
2017/08/16 Javascript
React+react-dropzone+node.js实现图片上传的示例代码
2017/08/23 Javascript
vue cli使用绝对路径引用图片问题的解决
2017/12/06 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
浅谈layui 绑定form submit提交表单的注意事项
2019/10/25 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
[55:44]完美世界DOTA2联赛决赛 FTD vs Phoenix 第二场 11.08
2020/11/11 DOTA
python基础_文件操作实现全文或单行替换的方法
2017/09/04 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
Django框架多表查询实例分析
2018/07/04 Python
Python编程深度学习绘图库之matplotlib
2018/12/28 Python
使用Python制作表情包实现换脸功能
2019/07/19 Python
如何验证python安装成功
2020/07/06 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
CSS3+HTML5+JS 实现一个块的收缩与展开动画效果
2020/11/17 HTML / CSS
h5调用摄像头的实现方法
2016/06/01 HTML / CSS
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
英语老师推荐信
2014/02/26 职场文书
房屋买卖协议书范本
2014/09/27 职场文书
道歉的话语大全
2015/05/12 职场文书
博物馆观后感
2015/06/05 职场文书
六五普法先进个人主要事迹材料
2015/11/03 职场文书
Vue实现动态查询规则生成组件
2021/05/27 Vue.js
vue+spring boot实现校验码功能
2021/05/27 Vue.js
Python 处理表格进行成绩排序的操作代码
2021/07/26 Python