TKinter布局之pack

pack布局非常简单,不用做过多的设置,直接使用一个 pack 函数就可以了。

1、我们使用 pack 函数的时候,默认先使用的放到上面,然 后 依次向下排,它会给我们的组件一个自认为合适的位置 和大小,这是默认方式。

2、可接受的参数:

  side:按扭停靠在窗口的哪个位置

    left: 左

    top: 上

    right: 右

    botton: 下

  fill:填充

    x:水平方向填充

    y:竖直方向填充

    both:水平和竖直方向填充

    none:不填充

  expand:

    yes:扩展整个空白区

    no:不扩展

  anchor:

    N:北 下

    E:东 右

    S:南 下

    W:西 左

    CENTER:中间

  padx:x方向的外边距

  pady:y方向的外边距

  ipadx:x方向的内边距

  ipady:y方向的内边距

示例代码:

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
from Tkinter import *
root = Tk()
Button(root,text='A').pack(side=LEFT,expand=YES,fill=Y)
Button(root,text='B').pack(side=TOP,expand=YES,fill=BOTH)
Button(root,text='C').pack(side=RIGHT,expand=YES,fill=NONE)
Button(root,text='D').pack(side=LEFT,expand=NO,fill=Y)
Button(root,text='E').pack(side=TOP,expand=YES,fill=BOTH)
Button(root,text='F').pack(side=BOTTOM,expand=YES)
Button(root,text='G').pack(anchor=SE)
root.mainloop()

效果如下:
这里写图片描述

### Tkinter 中 `pack` 布局管理器的使用方法 #### 基本概念 Tkinter 提供了多种布局管理器用于安排窗口内的控件位置,其中一种就是 `pack()` 几何管理器。此工具通过一系列简单易懂的方式让开发者能够快速定义组件在容器中的相对定位[^1]。 #### 工作流程概述 当应用 `pack()` 方法时,其执行过程可以分为几个阶段: - 首先确定父级容器; - 接着计算该区域内未被占用的空间大小; - 然后依据指定参数调整子部件尺寸并放置它们; - 最终完成整个布局的设计[^2]。 #### 主要配置项说明 为了更灵活地控制小部件的行为,在调用 `pack()` 时还可以传递一些额外的关键字参数: - **side**: 控制当前项目相对于其他已打包项目的方位,默认值为'Top'表示顶部对齐;可选值还包括 'Bottom'(底部),'Left'(左侧) 及 'Right'(右侧)。 - **fill**: 当设置此项时允许对象沿特定方向填充剩余空白区域,接受三个可能的选择——X轴、Y轴 或者 Both(两者皆有)[^2]. - **expand**: 如果设为True,则即使存在多余空间也会平均分配给各个元素使其扩展至最大范围. - **padx/pady**: 外边距属性用来增加周围留白距离,单位像素数. - **ipadx/ipady**: 内边距则是在内部四周添加间隔效果. #### 实际操作案例展示 下面给出一段简单的 Python 代码片段作为例子来演示上述知识点的实际运用情况: ```python import tkinter as tk root = tk.Tk() frame = tk.Frame(root) label_1 = tk.Label(frame, text="Label 1", bg='red') label_2 = tk.Label(frame, text="Label 2", bg='green') # 设置标签水平居中显示,并占据全部宽度 label_1.pack(side=tk.TOP, fill=tk.X, expand=True) label_2.pack(side=tk.BOTTOM, fill=tk.BOTH, expand=True) frame.pack(fill=tk.BOTH, expand=True) root.mainloop() ``` 这段程序创建了一个包含两个不同颜色背景标签的小型图形化应用程序。通过适当设定各自的 `pack()` 参数实现了预期的效果:上方红色部分仅占用了上半屏而下方绿色区块会随着窗口变化自动伸缩适应新高度。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值