Python

您所在的位置:网站首页 python的pack函数 Python

Python

2024-02-26 21:30| 来源: 网络整理| 查看: 265

Pack

pack、grid 和 place 均用于管理同在一个父组件下的所有组件的布局,其中: pack 是按添加顺序排列组件 grid 是按行/列形式排列组件 place 则允许程序员指定组件的大小和位置

对比 grid 管理器,pack 更适用于少量组件的排列,但它在使用上更加简单(就像我们前边所有的例子中,展示一个组件我们一般都直接使用 .pack(),多简单~)。如果你需要创建相对复杂的布局结构,那么建议是使用多个框架(Frame)结构构成,或者使用 grid 管理器实现。

注意:不要在同一个父组件中混合使用 pack 和 grid,因为 Tkinter 会很认真地在那儿计算到底先使用那个布局管理器......以至于你等了半个小时,Tkinter 还在那儿纠结不出结果!

代码

Listbox 组件填充到 root 窗口中:

import tkinter as tk root = tk.Tk() # fill 选项是告诉窗口管理器该组件将填充整个分配给它的空间,"both" 表示同时横向和纵向扩展,"x" 表示横向,"y" 表示纵向 # expand 选项是告诉窗口管理器将父组件的额外空间也填满。 listbox = tk.Listbox(root) listbox.pack(fill="both", expand=True) for i in range(10): listbox.insert("end", str(i)) root.mainloop()

纵向排列:

import tkinter as tk root = tk.Tk() tk.Label(root, text="Red", bg="red", fg="white").pack(fill="x") tk.Label(root, text="Green", bg="green", fg="black").pack(fill="x") tk.Label(root, text="Blue", bg="blue", fg="white").pack(fill="x") root.mainloop()

横向排列:

import tkinter as tk root = tk.Tk() tk.Label(root, text="Red", bg="red", fg="white").pack(side="left") tk.Label(root, text="Green", bg="green", fg="black").pack(side="left") tk.Label(root, text="Blue", bg="blue", fg="white").pack(side="left") root.mainloop() 方法

注:下边所有方法适用于所有组件

pack(**options)

-- 下方表格详细列举了各个选项的具体含义和用法:

选项 含义 anchor 1. 控制组件在 pack 分配的空间中的位置2. "n", "ne", "e", "se", "s", "sw", "w", "nw", 或者 "center" 来定位(ewsn 代表东西南北,上北下南左西右东)3. 默认值是 "center" expand 1. 指定是否填充父组件的额外空间2. 默认值是 False fill 1. 指定填充 pack 分配的空间2. 默认值是 NONE,表示保持子组件的原始尺寸3. 还可以使用的值有:"x"(水平填充),"y"(垂直填充)和 "both"(水平和垂直填充) in_ 1. 将该组件放到该选项指定的组件中2. 指定的组件必须是该组件的父组件 ipadx 指定水平方向上的内边距 ipady 指定垂直方向上的内边距 padx 指定水平方向上的外边距 pady 指定垂直方向上的外边距 side 1. 指定组件的放置位置2. 默认值是 "top"3. 还可以设置的值有:"left","bottom","right"

pack_configure(**options) -- 跟 pack() 一样

pack_forget() -- 将组件从屏幕中“删除” -- 并没有销毁该组件,只是看不到了 -- 可以通过 pack 或其他布局管理器显示已“删除”的组件

pack_info() -- 以字典的形式返回当前 pack 的选项

pack_propagate(flag) -- 如果开启,父组件会自动调节尺寸以容纳所有子组件 -- 默认值是开启(flag = True) -- 该方法仅适用于父组件

pack_slaves() -- 以列表的形式返回该组件的所有子组件 -- 该方法仅适用于父组件



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3