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 相关文章推荐
pygame学习笔记(3):运动速率、时间、事件、文字
Apr 15 Python
简化Python的Django框架代码的一些示例
Apr 20 Python
在主机商的共享服务器上部署Django站点的方法
Jul 22 Python
python学习教程之使用py2exe打包
Sep 24 Python
python语言中with as的用法使用详解
Feb 23 Python
python爬虫基本知识
Mar 05 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
Apr 19 Python
十行代码使用Python写一个USB病毒
Jun 21 Python
扩展Django admin的list_filter()可使用范围方法
Aug 21 Python
python实现逆滤波与维纳滤波示例
Feb 26 Python
Pycharm新手使用教程(图文详解)
Sep 17 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
Dec 01 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执行sql语句的写法
2009/03/10 PHP
PHP简单处理表单输入的特殊字符的方法
2016/02/03 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
Thinkphp5.0框架视图view的模板布局用法分析
2019/10/12 PHP
javascript 限制输入脚本大全
2009/11/03 Javascript
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
JavaScript中this详解
2015/09/01 Javascript
ES6中非常实用的新特性介绍
2016/03/10 Javascript
Node.js实现文件上传
2016/07/05 Javascript
vue.js开发环境搭建教程
2017/05/04 Javascript
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
jQuery中each循环的跳出和结束实例
2017/08/16 jQuery
jQuery实现简单的计时器功能实例分析
2017/08/29 jQuery
javaScript之split与join的区别(详解)
2017/11/08 Javascript
vue 2.x 中axios 封装的get 和post方法
2018/02/28 Javascript
js中自定义react数据验证组件实例详解
2018/10/19 Javascript
vue 项目接口管理的实现
2019/01/17 Javascript
微信小程序 拍照或从相册选取图片上传代码实例
2019/08/28 Javascript
原生小程序封装跑马灯效果
2020/10/21 Javascript
Python缩进和冒号详解
2016/06/01 Python
微信 用脚本查看是否被微信好友删除
2016/10/28 Python
Python面向对象之接口、抽象类与多态详解
2018/08/27 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
selenium+python截图不成功的解决方法
2019/01/30 Python
基于django channel实现websocket的聊天室的方法示例
2019/04/11 Python
香港化妆品经销商:我的公主
2016/08/05 全球购物
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
Nisbets爱尔兰:英国最大的厨房和餐饮设备供应商
2019/01/26 全球购物
英语专业学生个人求职信范文
2014/01/06 职场文书
行政办公室岗位职责
2014/03/18 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
优秀班集体申报材料
2014/12/25 职场文书
先进个人主要事迹范文
2015/11/04 职场文书
基于docker安装zabbix的详细教程
2022/06/05 Servers