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所有属性详解相关推荐

  1. Tkinter之place所有属性详解

    Tkinter的place()方法记录 我理解的place方法就是需要将容器如何放置在你的窗口上面,主要是将容器按照绝对坐标系进行放置,如果需要精确按照坐标放置,那place一定是首选. 首先plac ...

  2. #pragma pack 用法详解

    #pragma pack 用法详解 pack为struct.union和class等的成员对齐指定字节边界,与编译选项(属性 -> 配置属性 -> C/C++ ->代码生成 -> ...

  3. Python Tkinter——数字拼图游戏详解版

    Python Tkinter 实践系列--数字拼图游戏详解版 import random #Python中的random是一个标准库用于生成随机数.随机整数.还有随机从数据集取数据. import t ...

  4. python的tkinter插入图片_详解python tkinter 图片插入问题

    通过tkinter.PhotoImage插入GIF, PGM/PPM格式的图片. import tkinter class Gui: def __init__(self): self.gui=tkin ...

  5. tkinter窗口布局pack方法详解

    0️⃣前言 此文章代码都在Github:3-窗口控件配置管理员/pack方法别忘了⭐️呀 做一个应用程序,肯定需要更多的widget控件,所以这时候就牵扯到了如何将这些widget控件配置到 容器 或 ...

  6. python tkinter 布局_python tkinter组件摆放方式详解

    1.最小界面组成 # 导入tkinter模块 import tkinter # 创建主窗口对象 root = tkinter.Tk() # 设置窗口大小(最小值:像素) root.minsize(30 ...

  7. 【tkinter】的使用详解,做一个简单实用的万能可视化界面!

    文章目录 一.tkinter类介绍 二.在例子中学会用法! 1.一个简单的开始 2.学会使用button 3.Entry窗口部件 1.简单使用 2.动态改变entry内部的值 4.Text窗口部件 ( ...

  8. pack php 详解_函数pack的使用详解

    [导读]pack函数把数据装入一个二进制字符串. php pack() 函数定义和用法 pack() 函数把数据装入一个二进制字符串. 语法pack(format,args+) 参数描述format ...

  9. php pack方法,php pack()函数详解与示例

    手册: pack (PHP 3, PHP 4, PHP 5) pack -- Pack data into binary string 说明 string pack ( string format [ ...

最新文章

  1. 用源码轻松搭建LNMP !
  2. 用树莓派的方式打开小米手机:摇晃手机控制小车,前进后退加转弯,成本不到350元 | 开源...
  3. swift 如何实现点击view后显示灰色背景
  4. Coolpad Y1刷机方法
  5. leetcode[217].存在重复元素
  6. css --- [读书笔记] 盒模型(边框、内外边距)
  7. 十、简单线性回归的python实现(详解)
  8. excel 单元格求和大于某个数后返回列号_Excel最常用的几个函数,我都帮你整理好了!...
  9. jsp文字上下居中显示_jsp中怎样让文字居中 ?
  10. 计算机组成原理 实验六 存储器容量扩展
  11. 删除微云同步助手计算机快捷访问,腾讯微云同步助手使用说明:设置同步文件,方便随时查看...
  12. PageHelper.startPage 的作用范围探究
  13. C语言理论小学案例试讲,【精选】C语言试讲 演示文稿C语言试讲 演示文稿.ppt
  14. 戴尔电脑重装系统的blos设置
  15. 喜报|Authing 入选 CNCF Landscape 云原生技术图谱
  16. 用友T+财务软件数据库——SQL生成含上级科目的标准化科目表
  17. Uav开发杂记-4-无人机开发的C-C++
  18. 所有人体胸部和下半身各部位的英语单词
  19. 只有两个键的键盘,只会复制粘贴
  20. 数据库设计-SQL Server开发实现学习

热门文章

  1. Android 应用锁/程序锁(APPLock)的实现 http://shigongbo.blog.163.com/blog/static/976090201452572535715
  2. 【转载】自抗扰控制器的学习过程
  3. 最新爆料 !公众号很有必要接入微社区吗?
  4. 谣言检测文献阅读二—Earlier detection of rumors in online social networks using certainty‑factor‑based convolu
  5. 爬虫实战4:豆瓣的模拟登陆
  6. 2022年全球与中国非定向信标市场现状与未来发展趋势分析
  7. 给DataTable中添加一行数据
  8. android 恢复出厂设置流程分析,基于Android系统快速恢复出厂设置方法实现.doc
  9. sas统计分析学习笔记(六)
  10. 教师职称评定论文发表【新规定】老师必看