Tkinter之pack所有属性详解
Tkinter的pack()方法记录
我理解的pack方法就是需要将容器如何放置在你的窗口上面,主要是相对位置的一个概念,而且最重要的是pack方法是按照代码执行顺序一行一行放置的,先后顺序对结果有很大影响。
首先pack()方法的属性有如下几个:
-after, -anchor, -before, -expand, -fill, -in, -ipadx, -ipady, -padx, -pady, -side
其中pack方法可以应用于Tkinter内的所有容器;
expand
expand参数表示的是容器在整个窗口上,将容器放置在剩余空闲位置上的中央(包括水平和垂直方向)
expand=1或者expand=“yes”,表示放置在中央
expand=0或者expand=“no”,表示默认不扩展
#"作者:晒晒小木桩"
import tkinter as tkwindow = tk.Tk()
window.geometry("150x150")
tk.Button(window, text="Button-1", bg="green").pack(expand="yes")
tk.Button(window,text="Button-2",bg="yellow").pack(expand="no")
#tk.Button(window,text="Button-3",bg="yellow").pack()
window.mainloop()
效果图如下:
可以明显的对比出expand不是整个窗口的中心,而是剩余位置的中心;
fill 和 side
fill表示的是容器相对于整个窗口是否进行填充,这个参数的优先级高于width和heigh;有三个选项可以配置,
fill=“x”,表示横向填充
fill=“y”,表示纵向填充
fill=“both”,表示横向和纵向都填充
上面几个填充选项当和side同时使用时需要注意:
当side="left"或side="right"时,fill="x"不起作用,只能填充y
side=“top”,side="bottom"时,fill="y"不起作用,只能填充x
#"作者:晒晒小木桩"
import tkinter as tkwindow = tk.Tk()
window.geometry("150x150")tk.Label(window, text="上边", bg="green").pack(fill="x", side="top")
tk.Label(window, text="下边", bg="red").pack(fill="y", side="bottom")
tk.Label(window, text="左边", bg="green").pack(fill="y", side="left")
tk.Label(window, text="右边", bg="red").pack(fill="x", side="right")
tk.Button(window, text="中间", bg="yellow").pack(expand="yes")window.mainloop()
效果如下:
如果多个容器使用同一个side,那么将会按照如下箭头方向进行排列:
#"作者:晒晒小木桩"
import tkinter as tkwindow = tk.Tk()
window.geometry("250x250")tk.Label(window,text="1",bg="green").pack(side="left")
tk.Label(window,text="2",bg="green").pack(side="left")tk.Label(window,text="3",bg="red").pack(side="right")
tk.Label(window,text="4",bg="red").pack(side="right")tk.Label(window,text="5",bg="yellow").pack(side="top")
tk.Label(window,text="6",bg="yellow").pack(side="top")tk.Label(window,text="7",bg="pink").pack(side="bottom")
tk.Label(window,text="8",bg="pink").pack(side="bottom")window.mainloop()
padx,pady和ipadx,ipady
1.简单来说就是padx和pady表示的是2个容器,或者是容器和边框之间需要的间距(x是上和下对称,y是左和右对称)
2.ipadx和ipady表示容器的内容和容器边框之间的距离,同样是对称的;
下面2个列子说明;
ipadx和ipady:
#"作者:晒晒小木桩"
import tkinter as tkwindow = tk.Tk()
window.geometry("200x200")
tk.Button(window,text="Button-1").pack()
tk.Button(window,text="Button-2").pack(ipadx=10,ipady=10)
window.mainloop()
padx和pady:
#"作者:晒晒小木桩"
import tkinter as tkwindow = tk.Tk()
tk.Button(window,text="Button-1").pack()
tk.Button(window,text="Button-2").pack(padx=50,pady=10)
window.mainloop()
anchor
首先anchor共有9个参数可以设置n, s, w, e ,nw, ne, sw, se, center. 分别是各个方向英语的缩写。
有一个注意点是,anchor 放置容器时是相对于每一行放置的,重点在控制每一个容器在每一行的位置比较有用。如果要想实现相对于整个窗口的相对位置放置,可以参考上面的side用法。
#"作者:晒晒小木桩"
import tkinter as tkwindow = tk.Tk()
window.geometry("300x300")tk.Button(window,text="1-North West").pack(anchor="nw")
tk.Button(window,text="2-North").pack(anchor="n")
tk.Button(window,text="3-North East").pack(anchor="ne")
tk.Button(window,text="4-West").pack(anchor="w")
tk.Button(window,text="5-East").pack(anchor="e")
tk.Button(window,text="6-South West").pack(anchor="sw")
tk.Button(window,text="7-South").pack(anchor="s")
tk.Button(window,text="8-South East").pack(anchor="se")
tk.Button(window,text="9-Center").pack(anchor="center")window.mainloop()
运行结果
after,before,in这3个基本不用
最后推荐一个看到别人总结的很好的文章,连接如下:
tkinter模块常用方法和其属性
Tkinter之pack所有属性详解相关推荐
- Tkinter之place所有属性详解
Tkinter的place()方法记录 我理解的place方法就是需要将容器如何放置在你的窗口上面,主要是将容器按照绝对坐标系进行放置,如果需要精确按照坐标放置,那place一定是首选. 首先plac ...
- #pragma pack 用法详解
#pragma pack 用法详解 pack为struct.union和class等的成员对齐指定字节边界,与编译选项(属性 -> 配置属性 -> C/C++ ->代码生成 -> ...
- Python Tkinter——数字拼图游戏详解版
Python Tkinter 实践系列--数字拼图游戏详解版 import random #Python中的random是一个标准库用于生成随机数.随机整数.还有随机从数据集取数据. import t ...
- python的tkinter插入图片_详解python tkinter 图片插入问题
通过tkinter.PhotoImage插入GIF, PGM/PPM格式的图片. import tkinter class Gui: def __init__(self): self.gui=tkin ...
- tkinter窗口布局pack方法详解
0️⃣前言 此文章代码都在Github:3-窗口控件配置管理员/pack方法别忘了⭐️呀 做一个应用程序,肯定需要更多的widget控件,所以这时候就牵扯到了如何将这些widget控件配置到 容器 或 ...
- python tkinter 布局_python tkinter组件摆放方式详解
1.最小界面组成 # 导入tkinter模块 import tkinter # 创建主窗口对象 root = tkinter.Tk() # 设置窗口大小(最小值:像素) root.minsize(30 ...
- 【tkinter】的使用详解,做一个简单实用的万能可视化界面!
文章目录 一.tkinter类介绍 二.在例子中学会用法! 1.一个简单的开始 2.学会使用button 3.Entry窗口部件 1.简单使用 2.动态改变entry内部的值 4.Text窗口部件 ( ...
- pack php 详解_函数pack的使用详解
[导读]pack函数把数据装入一个二进制字符串. php pack() 函数定义和用法 pack() 函数把数据装入一个二进制字符串. 语法pack(format,args+) 参数描述format ...
- php pack方法,php pack()函数详解与示例
手册: pack (PHP 3, PHP 4, PHP 5) pack -- Pack data into binary string 说明 string pack ( string format [ ...
最新文章
- 用源码轻松搭建LNMP !
- 用树莓派的方式打开小米手机:摇晃手机控制小车,前进后退加转弯,成本不到350元 | 开源...
- swift 如何实现点击view后显示灰色背景
- Coolpad Y1刷机方法
- leetcode[217].存在重复元素
- css --- [读书笔记] 盒模型(边框、内外边距)
- 十、简单线性回归的python实现(详解)
- excel 单元格求和大于某个数后返回列号_Excel最常用的几个函数,我都帮你整理好了!...
- jsp文字上下居中显示_jsp中怎样让文字居中 ?
- 计算机组成原理 实验六 存储器容量扩展
- 删除微云同步助手计算机快捷访问,腾讯微云同步助手使用说明:设置同步文件,方便随时查看...
- PageHelper.startPage 的作用范围探究
- C语言理论小学案例试讲,【精选】C语言试讲 演示文稿C语言试讲 演示文稿.ppt
- 戴尔电脑重装系统的blos设置
- 喜报|Authing 入选 CNCF Landscape 云原生技术图谱
- 用友T+财务软件数据库——SQL生成含上级科目的标准化科目表
- Uav开发杂记-4-无人机开发的C-C++
- 所有人体胸部和下半身各部位的英语单词
- 只有两个键的键盘,只会复制粘贴
- 数据库设计-SQL Server开发实现学习
热门文章
- Android 应用锁/程序锁(APPLock)的实现 http://shigongbo.blog.163.com/blog/static/976090201452572535715
- 【转载】自抗扰控制器的学习过程
- 最新爆料 !公众号很有必要接入微社区吗?
- 谣言检测文献阅读二—Earlier detection of rumors in online social networks using certainty‑factor‑based convolu
- 爬虫实战4:豆瓣的模拟登陆
- 2022年全球与中国非定向信标市场现状与未来发展趋势分析
- 给DataTable中添加一行数据
- android 恢复出厂设置流程分析,基于Android系统快速恢复出厂设置方法实现.doc
- sas统计分析学习笔记(六)
- 教师职称评定论文发表【新规定】老师必看