PanedWindow(窗格)组件(Tk8.4新增是一个空间管理组件。跟Frame组件类似,都是为组件提供一个框架,不过PanedWindow允许让用户调整应用程序的空间划分。
何时使用PanedWindow组件?
当你需要提供一个可供用户调整的多空间框架的时候,可以使用PanedWindow组件。PanedWindow组件会为每一个子组件生成一个独立的窗格,用户可以自由调整窗格的大小。
用法:
from tkinter import *
m = PanedWindow(orient=VERTICAL)
m.pack(fill=BOTH, expand=1)
top = Label(m, text='top pane')
m.add(top)
bottom = Label(m, text='bottom pane')
m.add(bottom)
#拖拽鼠标的左键可以改变布局
#中间有条隐藏的线,是二窗格
mainloop()
#创建一个三窗格
from tkinter import *
m1 = PanedWindow() #默认是左右分布的
m1.pack(fill=BOTH, expand=1)
left = Label(m1, text='left pane')
m1.add(left)
m2 = PanedWindow(orient=VERTICAL)
m1.add(m2)
top = Label(m2, text='top pane')
m2.add(top)
bottom = Label(m2, text='bottom pane')
m2.add(bottom)
mainloop()
#显示手柄和分割线
from tkinter import *
m1 = PanedWindow(showhandle=True, sashrelief=SUNKEN) #默认是左右分布的
m1.pack(fill=BOTH, expand=1)
left = Label(m1, text='left pane')
m1.add(left)
m2 = PanedWindow(orient=VERTICAL, showhandle=True, sashrelief=SUNKEN)
m1.add(m2)
top = Label(m2, text='top pane')
m2.add(top)
bottom = Label(m2, text='bottom pane')
m2.add(bottom)
mainloop()
#分割线上的类似正方形的东西就是handle
参数
PanedWindow(master=None, **options)(class)
master--父组件
**options--组件选项,下方详细列举了各个选项的具体含义和用法
background:设置背景颜色
bg:跟background一样
borderwidth:设置边框宽度
bd:跟borderwidth一样
cursor:指定当鼠标在PanedWindow上飘过的时候的鼠标样式
默认值由系统指定
handlepad:调节“手柄”的位置
例如orient=VERTICAL,则handlepad选项表示“分割线”上的手柄与左端的距离
默认值是8像素
handlesize:设置“手柄”的尺寸(由于“手柄”必须是一个正方形,所以是设置正方形的边长)
默认值是8像素
height:设置PanedWindow的高度
如果忽略该选项,则高度由子组件的尺寸决定
opaqueresize:该选项定义了用户调整窗格尺寸的操作
如果该选项的值为True(默认),窗格的尺寸随用户鼠标的拖拽而改变
如果该选项的值为False,窗格的尺寸在用户释放鼠标的时候才更新到新的位置
orient:指定窗格的分布方式
可以是HORIZONTAL(横向分布)和VERTICAL(纵向分布)
relief:指定边框样式
默认值是FLAT
另外你还可以设置SUNKEN,RAISED,GROOVED或RIDGE
sashpad:设置每一条分割线到窗格间的间距
sashrelief:设置分割线的样式
默认值是FLAT
另外你还可以设置SUNKEN,RAISED,GROOVED或RIDGE
sashwidth:设置分割线的宽度
showhandle:设置是否显示调节窗格的手柄
默认值为False
width:设置PanedWindow的宽度
如果忽略该选项,则高度由子组件的尺寸决定
方法:
add(child, **options)
--添加一个新的子组件到窗格中
--下方表格列举了各个options选项的具体含义
after:添加新的子组件到指定子组件后边
before:添加新的子组件到指定子组件qianb
height:指定子组件的高度
minsize:该选项控制窗格不得低于的值
如果orient=HORIZONTAL,表示窗格的宽度不得低于该选项的值
如果orient=VERTICAL,表示窗格的高度不得低于该选项的值
padx:指定子组件的水平间距
pady:指定子组件的垂直间距
sticky:当窗格的尺寸大于子组件时,该选项指定子组件位于窗格的位置
可选的值有:E、S、W、N(东南西北)以及他们的组合值
width:指定子组件的宽度
forget(child)
--删除一个子组件
identify(x, y)
--给定一个坐标(x, y),返回该坐标所在的元素名称
--如果该坐标位于子组件上,返回空字符串
--如果该坐标位于分割线上,返回一个二元组(n, 'sash'),n为0表示第一个分割线
--如果该坐标位于手柄上,返回一个二元组(n, 'handle'),n为0表示第一个手柄
panecget(child, option)
--获得子组件指定选项的值
panecget(child, option)
--获得子组件指定选项的值
paneconfig(child, **option)
--设置子组件的各种选项
--下面列举了各个options选项具体含义
after:添加新的子组件到指定子组件后边
before:添加新的子组件到指定子组件前边
height:指定子组件的高度