14、PanedWindow

PanedWindow 组件(Tk8.4 新增)是一个空间管理组件。跟Frame 组件类似,都是为组件提供一个框架,不过 PanedWindow 允许让用户调整应用程序的空间划分。

import tkinter as tk

root = tk.Tk()

pw = tk.PanedWindow(root,orient='vertical',sashwidth=3,background='black')
pw.pack(fill='both')

top_label = tk.Label(pw,text='top_label')
pw.add(top_label)

bottom_label = tk.Label(pw,text='bottom_label')
pw.add(bottom_label)

root.mainloop()

image-20250415151701606

属性

选项 含义
background 设置背景颜色
bg 跟 background 一样
borderwidth 设置边框宽度
bd 跟 borderwidth 一样
cursor 1. 指定当鼠标在 PanedWindow 上飘过的时候的鼠标样式 2. 默认值由系统指定
handlepad 1. 调节“手柄”的位置 2. 例如 orient="vertical",则 handlepad 选项表示“分割线”上的手柄与左端的距离 3. 默认值是 8 像素
handlesize 1. 设置“手柄”的尺寸(由于“手柄”必须是一个正方形,所以是设置正方形的边长) 2. 默认值是 8 像素
height 1. 设置 PanedWindow 的高度 2. 如果忽略该选项,则高度由子组件的尺寸决定
opaqueresize 1. 该选项定义了用户调整窗格尺寸的操作 2. 如果该选项的值为 True(默认),窗格的尺寸随用户鼠标的拖拽而改变 3. 如果该选项的值为 False,窗格的尺寸在用户释放鼠标的时候才更新到新的位置
orient 1. 指定窗格的分布方式 2. 可以是 "horizontal"(横向分布)和 "vertical"(纵向分布)
relief 1. 指定边框样式 2. 默认值是 "flat" 3. 另外你还可以设置 "sunken","raised","groove" 或 "ridge"
sashpad 设置每一条分割线到窗格间的间距
sashrelief 1. 设置分割线的样式 2. 默认值是:"flat" 3. 另外你还可以设置 "sunken","raised","groove" 或 "ridge"
sashwidth 设置分割线的宽度
showhandle 1. 设置是否显示调节窗格的手柄 2. 默认值为 False
width 1. 设置 PanedWindow 的宽度 2. 如果忽略该选项,则高度由子组件的尺寸决定

方法

选项 含义
after 添加新的子组件到指定子组件后边
before 添加新的子组件到指定子组件前边
height 指定子组件的高度
minsize 1. 该选项控制窗格不得低于的值 2. 如果 orient="horizontal",表示窗格的宽度不得低于该选项的值 3. 如果 orient="vertical",表示窗格的高度不得低于该选项的值
padx 指定子组件的水平间距
pady 指定子组件的垂直间距
sticky 1. 当窗格的尺寸大于子组件时,该选项指定子组件位于窗格的位置 2. 可选的值有:"e"、"s"、"w"、"n"(分别代表东南西北四个方位)以及它们的组合值 3. 例如 NE 表示子组件显示在右上角的位置
width 指定子组件的宽度
选项 含义
after 添加新的子组件到指定子组件后边
before 添加新的子组件到指定子组件前边
height 指定子组件的高度
minsize 1. 该选项控制窗格不得低于的值 ;2. 如果 orient="horizontal",表示窗格的宽度不得低于该选项的值 ;3. 如果 orient="vertical",表示窗格的高度不得低于该选项的值
padx 指定子组件的水平间距
pady 指定子组件的垂直间距
sticky 1. 当窗格的尺寸大于子组件时,该选项指定子组件位于窗格的位置 ;2. 可选的值有:"e"、"s"、"w"、"n"(分别代表东南西北四个方位)以及它们的组合值 ;3. 例如 NE 表示子组件显示在右上角的位置
width 指定子组件的宽度