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 14 Python
python使用fileinput模块实现逐行读取文件的方法
Apr 29 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
Jul 10 Python
Python global全局变量函数详解
Sep 18 Python
python用插值法绘制平滑曲线
Feb 19 Python
对python pandas读取剪贴板内容的方法详解
Jan 24 Python
Pythony运维入门之Socket网络编程详解
Apr 15 Python
Python3 hashlib密码散列算法原理详解
Mar 30 Python
基于python实现检索标记敏感词并输出
May 07 Python
Python Selenium破解滑块验证码最新版(GEETEST95%以上通过率)
Jan 29 Python
django使用多个数据库的方法实例
Mar 04 Python
基于Python实现将列表数据生成折线图
Mar 23 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中的超全局变量
2006/10/09 PHP
php中静态类与静态变量用法的区别分析
2015/01/15 PHP
WordPress主题制作之模板文件的引入方法
2015/12/28 PHP
thinkphp框架下实现登录、注册、找回密码功能
2016/04/06 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
基于jQuery的获取标签名的代码
2012/07/16 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
js中document.write使用过程中的一点疑问解答
2014/03/20 Javascript
js中的如何定位固定层的位置
2014/06/15 Javascript
JavaScript实现设计模式中的单例模式的一些技巧总结
2016/05/17 Javascript
深入理解setTimeout函数和setInterval函数
2016/05/20 Javascript
详解JavaScript的内置对象
2016/12/07 Javascript
使用百度地图实现地图网格的示例
2018/02/06 Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
2018/02/22 Javascript
angularJS的radio实现单项二选一的使用方法
2018/02/28 Javascript
详解小程序不同页面之间通讯的解决方案
2018/11/23 Javascript
原生小程序封装跑马灯效果
2020/10/21 Javascript
ant-design表单处理和常用方法及自定义验证操作
2020/10/27 Javascript
python实现倒计时的示例
2014/02/14 Python
Python装饰器用法实例总结
2018/05/26 Python
Python中变量的输入输出实例代码详解
2019/07/28 Python
python 采用paramiko 远程执行命令及报错解决
2019/10/21 Python
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
波兰珠宝品牌:YES
2019/08/09 全球购物
高中生学习生活的自我评价
2013/11/27 职场文书
音乐教学案例
2014/01/30 职场文书
青年教师培训方案
2014/02/06 职场文书
《乡愁》教学反思
2014/02/18 职场文书
企业宣传方案
2014/03/04 职场文书
绩效考核实施方案
2014/03/18 职场文书
公积金贷款承诺书
2015/04/30 职场文书
航班延误投诉信
2015/07/02 职场文书
2016年青少年禁毒宣传教育活动总结(学校)
2016/04/05 职场文书
使用react-virtualized实现图片动态高度长列表的问题
2021/05/28 Javascript
利用Python多线程实现图片下载器
2022/03/25 Python