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 13 Python
Python实现求最大公约数及判断素数的方法
May 26 Python
python通过getopt模块如何获取执行的命令参数详解
Dec 29 Python
对numpy和pandas中数组的合并和拆分详解
Apr 11 Python
Python之使用adb shell命令启动应用的方法详解
Jan 07 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
Jul 14 Python
python英语单词测试小程序代码实例
Sep 09 Python
python利用opencv实现SIFT特征提取与匹配
Mar 05 Python
Django User 模块之 AbstractUser 扩展详解
Mar 11 Python
Python3标准库glob文件名模式匹配的问题
Mar 13 Python
python实现猜数游戏(保存游戏记录)
Jun 22 Python
python开发入门——set的使用
Sep 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
php5 mysql分页实例代码
2008/04/10 PHP
深入分析PHP引用(&)
2014/09/04 PHP
PHP多线程之内部多线程实例分析
2015/03/09 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
网页自动刷新,不产生嗒嗒声的一个解决方法
2007/03/27 Javascript
JObj预览一个JS的框架
2008/03/13 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
JS实现时间格式化的方式汇总
2013/10/16 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
JQuery中serialize()用法实例分析
2015/02/06 Javascript
JS+CSS实现精美的二级导航效果代码
2015/09/17 Javascript
实例详解angularjs和ajax的结合使用
2015/10/22 Javascript
理解javascript中DOM事件
2015/12/25 Javascript
使用jQuery实现Web页面换肤功能的要点解析
2016/05/12 Javascript
js实现随机点名小功能
2017/08/17 Javascript
vue2.0模拟锚点的实例
2018/03/14 Javascript
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
jQuery实现合并表格单元格中相同行操作示例
2019/01/28 jQuery
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
vue实现登录、注册、退出、跳转等功能
2020/12/23 Vue.js
[40:57]TI4 循环赛第二日 iG vs EG
2014/07/11 DOTA
python进阶教程之动态类型详解
2014/08/30 Python
windows 下python+numpy安装实用教程
2017/12/23 Python
python+django+sql学生信息管理后台开发
2018/01/11 Python
神经网络(BP)算法Python实现及应用
2018/04/16 Python
python获取文件路径、文件名、后缀名的实例
2018/04/23 Python
pandas DataFrame的修改方法(值、列、索引)
2019/08/02 Python
python中的itertools的使用详解
2020/01/13 Python
解决更改AUTH_USER_MODEL后出现的问题
2020/05/14 Python
Python 实现简单的客户端认证
2020/07/29 Python
SmartBuyGlasses丹麦:网上购买名牌太阳镜、眼镜和隐形眼镜
2016/10/01 全球购物
商务英语专业自荐信
2013/10/14 职场文书
美术指导求职信
2014/03/17 职场文书
详解MySQL集群搭建
2021/05/26 MySQL
第四次工业革命,打工人与机器人的竞争
2022/04/21 数码科技