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多线程编程(六):可重入锁RLock
Apr 05 Python
Python中splitlines()方法的使用简介
May 20 Python
python实现百万答题自动百度搜索答案
Jan 16 Python
flask入门之文件上传与邮件发送示例
Jul 18 Python
Python实现的企业粉丝抽奖功能示例
Jul 26 Python
详解python中docx库的安装过程
Nov 08 Python
python学生信息管理系统实现代码
Dec 17 Python
Python中join()函数多种操作代码实例
Jan 13 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
Feb 26 Python
Python sql注入 过滤字符串的非法字符实例
Apr 03 Python
Python基于smtplib协议实现发送邮件
Jun 03 Python
Python数据可视化之绘制柱状图和条形图
May 25 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
for循环连续求和、九九乘法表代码
2012/02/20 PHP
php 计划任务 检测用户连接状态
2012/03/29 PHP
PHP 读取和编写 XML
2014/11/19 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
php生成二维码不保存服务器还有下载功能的实现代码
2018/08/09 PHP
jquery打开直接跳到网页最下面、最低端实现代码
2013/04/22 Javascript
jQuery中 noConflict() 方法使用
2013/04/25 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
2013/11/21 Javascript
js原型继承的两种方法对比介绍
2014/03/30 Javascript
jQuery中:eq()选择器用法实例
2014/12/29 Javascript
JavaScript学习心得之概述
2015/01/20 Javascript
JSON简介以及用法汇总
2016/02/21 Javascript
Node.js实现文件上传
2016/07/05 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
babel基本使用详解
2017/02/17 Javascript
AngularJS实现自定义指令与控制器数据交互的方法示例
2017/06/19 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
2017/10/19 Javascript
react中Suspense的使用详解
2019/09/01 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
微信小程序swiper组件实现抖音翻页切换视频功能的实例代码
2020/06/24 Javascript
Vue axios 跨域请求无法带上cookie的解决
2020/09/08 Javascript
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
Python-OpenCV基本操作方法详解
2018/04/02 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
2019/09/11 Python
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
新闻学毕业生自荐信
2013/11/15 职场文书
中国央视网签名寄语
2014/01/18 职场文书
城市轨道交通工程职业规划书范文
2014/01/18 职场文书
安全标准化汇报材料
2014/02/03 职场文书
2014年公司植树节活动方案
2014/03/04 职场文书
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang
Python实现照片卡通化
2021/12/06 Python
mysql sql常用语句大全
2022/06/21 MySQL
MySQL存储过程及语法详解
2022/08/05 MySQL