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登录Gmail并发送Gmail邮件的教程
Apr 17 Python
python使用pil生成图片验证码的方法
May 08 Python
Python中的super()方法使用简介
Aug 14 Python
python抓取网页中图片并保存到本地
Dec 01 Python
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
Nov 19 Python
Python常见异常分类与处理方法
Jun 04 Python
python之DataFrame实现excel合并单元格
Feb 22 Python
python3+PyQt5实现自定义分数滑块部件
Apr 24 Python
利用python如何在前程无忧高效投递简历
May 07 Python
Python企业编码生成系统之系统主要函数设计详解
Jul 26 Python
Python range、enumerate和zip函数用法详解
Sep 11 Python
keras的siamese(孪生网络)实现案例
Jun 12 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
完美解决dedecms中的[html][/html]和[code][/code]问题
2007/03/20 PHP
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
Yii2单元测试用法示例
2016/11/12 PHP
Safari5中alert的无限循环BUG
2011/04/07 Javascript
javascript读取Xml文件做一个二级联动菜单示例
2014/03/17 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
jquery通过扩展select控件实现支持enter或focus选择的方法
2015/11/19 Javascript
js实现点击每个li节点,都弹出其文本值及修改
2016/12/15 Javascript
AngularJS实现自定义指令与控制器数据交互的方法示例
2017/06/19 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
AngularJS 控制器 controller的详解
2017/10/17 Javascript
[49:12]完美世界DOTA2联赛PWL S2 Magma vs GXR 第二场 11.29
2020/12/02 DOTA
[19:54]夜魇凡尔赛茶话会 第一期02:看图识人
2021/03/11 DOTA
Python的词法分析与语法分析
2013/05/18 Python
python实现文件分组复制到不同目录的例子
2014/06/04 Python
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
详解python 拆包可迭代数据如tuple, list
2017/12/29 Python
PyQt5 pyqt多线程操作入门
2018/05/05 Python
python中实现字符串翻转的方法
2018/07/11 Python
python实现点对点聊天程序
2018/07/28 Python
python处理“
2019/06/10 Python
Python 处理文件的几种方式
2019/08/23 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
基于Tensorflow的MNIST手写数字识别分类
2020/06/17 Python
如何在python中实现线性回归
2020/08/10 Python
Python xmltodict模块安装及代码实例
2020/10/05 Python
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
一年级班主任寄语
2014/01/19 职场文书
大学三年计划书范文
2014/04/30 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
2015年社区妇联工作总结
2015/04/21 职场文书
小学思品教学反思
2016/02/20 职场文书
2016年师德先进个人事迹材料
2016/02/29 职场文书
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技