packer 是TK的几何管理机制之一。几何管理器用于指定小部件在其容器中的相对位置。packer 采用定性关系规范–above, to the left of, filling,等–并为您确定准确的放置坐标。

任何主部件的大小由内部“从部件”的大小决定。packer用于控制从部件在主部件中的位置,从部件被打包到主部件中。您可以将小部件打包到frame中,将frame打包到其他frame中,以实现您希望的布局类型。此外,一旦配置被打包,该配置就被动态调整以适应对配置的增量变化。

注意,部件在用几何图形管理器指定了几何图形之后才会出现。忽略几何规范是一个常见的早期错误,然后当小部件创建后却什么也没有出现时会感到惊讶。一个部件只有在应用了packer的pack()方法之后才会出现。

以下是一些例子:

fred.pack()                     # defaults to side = "top"
fred.pack(side="left")
fred.pack(expand=1)

pack(self, cnf={}, **kw)

Pack a widget in the parent widget. Use as options:

after=widget - pack it after you have packed widget
anchor=N S E W (or subset) - position widget according to
given direction
before=widget - pack it before you will pack widget
expand=bool - expand widget if parent size grows
fill=NONE or X or Y or BOTH - fill widget if widget grows
in=master - use master to contain this widget
in_=master - see ‘in’ option description
ipadx=amount - add internal padding in x direction
ipady=amount - add internal padding in y direction
padx=amount - add padding in x direction
pady=amount - add padding in y direction
side=TOP or BOTTOM or LEFT or RIGHT - where to add this widget.

#coding:utf-8
import tkinter
# 导入TK的符号常亮
from tkinter.constants import *def sendStr():print('Data Send Ok!')#  实例化TK类,主窗口必须为.TK(),而其他子窗口为.Toplevel()
top = tkinter.Tk()# 设置窗口的尺寸大小
top.wm_geometry('320x480+1000+100')# 不允许 改变 窗口的宽和高
top.wm_resizable(False,False)# 设置窗口标题
top.title('TCP Server')# 设置label标签
L1 = tkinter.Label(top, text='TCP Sever;\n20108/09/15',width=15, justify=LEFT, relief=RIDGE, background='#6699ff', )\.pack_configure(anchor=S, side=TOP, ipady=2, pady=2, fill=NONE)# 设置容器
frame1 = tkinter.Frame(top,height=80,width=60,relief=RIDGE, bg='#ff3399',bd=5,borderwidth=4)
# 设置填充和布局
frame1.pack(fill=NONE,ipady=2,expand=False)# 添加接收区文字标签
L2 = tkinter.Label(frame1,text='接\n收\n区',width=2, justify=LEFT, font=("宋体", 12, "bold"),)\.pack(padx=2,pady=40,side=LEFT,anchor=N)# 添加接收区的文本框
txt1 = tkinter.Text(frame1,width = 40, height = 10).pack(padx=2,pady=10,side=RIGHT,anchor=N)frame2 = tkinter.Frame(top, relief=RIDGE,bg='#3366ff')
frame2.pack(fill=X, padx=2,pady=10,side=TOP)# 加一个复选框,一个按键
chk_text = 'Hex Display'
int_if_choise = tkinter.IntVar()
chk1 = tkinter.Checkbutton(frame2,text=chk_text,font=('黑体',12),variable=int_if_choise,onvalue='OK',offvalue='NO')
chk1.pack(fill=NONE,side=LEFT,padx=2,pady=10)
print('shuchu:',int_if_choise)# 设置容器
frame3 = tkinter.Frame(top,height=120,width=60,relief=RIDGE, bg='#ff3399',bd=5,borderwidth=4)
# 设置填充和布局
frame3.pack(fill=X,ipady=2,expand=False)# 设置字符串变量
ServerReceiveVar = tkinter.StringVar(top,'')L3 = tkinter.Label(frame3, text='Cache&Input:',font=('黑体',12))
L3.pack(fill=NONE, expand=NO, side=TOP, anchor=W, padx=2,pady=10)txt2 = tkinter.Text(frame3, height = 2, width = 30).pack(padx=2, pady=2, ipady=4, side=LEFT, anchor=N)button1 = tkinter.Button(frame3,text='Send Str', command=sendStr).pack(side=TOP, anchor=W, padx=2, pady=4)# IP 列表
button2 = tkinter.Button(frame3,text="Exit",command=top.destroy).pack(side=TOP, anchor=N, padx=2, pady=10)top.mainloop()

from Tkinter import *root = Tk()w = Label(root, text="red", bg="red", fg="white")
w.pack(padx=5, pady=10, side=LEFT)
w = Label(root, text="green", bg="green", fg="black")
w.pack(padx=5, pady=20, side=LEFT)
w = Label(root, text="blue", bg="blue", fg="white")
w.pack(padx=5, pady=20, side=LEFT)mainloop()

python之tkinter Pack使用相关推荐

  1. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu的Command)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu的Command) 目录 tkinter应用案例 1.添加菜单栏组件 2.tkinter应用案例:添 ...

  2. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu/Menu的Command)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu/Menu的Command) 目录 tkinter应用案例 1.添加右键弹出菜单 2.点击一个按钮弹 ...

  3. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Canvas)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Canvas) 导读 动态演示调用python库的tkinter带你进入GUI世界(Canvas) 目录 t ...

  4. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Find/undo事件)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Find/undo事件) 导读 动态演示调用python库的tkinter带你进入GUI世界(Find/un ...

  5. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(text.insert/link各种事件)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(text.insert/link各种事件) 导读 动态演示调用python库的tkinter带你进入GUI世 ...

  6. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button展示图片事件)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button展示图片事件) 导读 动态演示调用python库的tkinter带你进入GUI世界(Button ...

  7. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Scale/Scale的Command)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Scale/Scale的Command) 导读 动态演示调用python库的tkinter带你进入GUI世界 ...

  8. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Listbox/Scrollbar)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Listbox/Scrollbar) 导读 动态演示调用python库的tkinter带你进入GUI世界(L ...

  9. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(计算器简单功能)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(计算器简单功能) 导读 动态演示调用python库的tkinter带你进入GUI世界(计算器简单功能) 目录 ...

最新文章

  1. xamarin 断点 不命中
  2. R语言构建决策树(decision trees)模型并进行调优和解释
  3. 如何为ListView中的ImageView添加动画,谢谢!
  4. Windows上编译github源码方式运行Node-RED,以及离线迁移安装Node-RED
  5. 微信小程序实现文件下载 以及微信小程序保存Excel
  6. Java22-day13【Lambda表达式(标准格式、练习、注意事项)、接口组成更新(默认-静态-私有方法)、方法引用(构造器)】
  7. 文献学习(part80-A)--Do we Need Hundreds of Classifiers to Solve Real World Classification Problems?
  8. 关于「无人驾驶」的学习路线...
  9. 上传 jar 包到 nexus3、上传本地 jar 包到 maven 私服
  10. firefox使用掘金插件_Mozilla发布新的附加组件来修复旧版Firefox中的扩展禁用问题...
  11. 《程序员代码面试指南》第二章 链表问题 反转部分单向链表
  12. ajax的嵌套需要注意的问题
  13. 打造SpringBootTemplate(SpringBoot项目的模版)
  14. Freemarker 最简单的例子程序
  15. android 表情变小了,别羡慕了!安卓微信表情包上限也变成999了!
  16. 华为eNSP静态路由原理与配置实例详解
  17. 微信公众号开发文档参考
  18. 我的第一个python程序源代码_科学网—我的第一个Python程序——删除代码前行号的小工具 - 闫小勇的博文...
  19. 搭建企业级微信公众号管理平台(三)----注册码实现与校验,Redis存储
  20. Mac电脑使用:Mac电脑如何用自带的Safari浏览器,一键翻译英文网页为中文网页

热门文章

  1. 网页中嵌入视频播放器代码
  2. SQL 2005安装时报已经安装了同名实例的问题解决。(无法正确卸载干净时最管用)
  3. ListView多选操作模式详解
  4. ext核心API详解
  5. PDF拆分工具怎么用?如何把一个PDF文件拆分成多个
  6. Android Socket IQ聊天软件 之 聊天气泡编码步骤讲解
  7. DNS服务器它到底是干啥的呢?
  8. 矢量绘图软件:Sketch 56 for mac
  9. 实现QQ表情功能(2)
  10. 区块链项目 - 1 创建一条公链