鱼c笔记——Python的GUI编程(十四):Tkinter的组件PanedWindow

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

何时使用PanedWindow组件?

当你需要提供一个可供用户调整的多空间框架的时候,可以使用PanedWindow组件。PanedWindow组件会为每一个子组件生成一个独立的窗格,用户可以自由调整窗格的大小。

用法:

 
  1. from tkinter import *

  2.  
  3. m = PanedWindow(orient=VERTICAL)

  4. m.pack(fill=BOTH, expand=1)

  5.  
  6. top = Label(m, text='top pane')

  7. m.add(top)

  8.  
  9. bottom = Label(m, text='bottom pane')

  10. m.add(bottom)

  11. #拖拽鼠标的左键可以改变布局

  12. #中间有条隐藏的线,是二窗格

  13.  
  14. mainloop()

 
  1. #创建一个三窗格

  2. from tkinter import *

  3.  
  4. m1 = PanedWindow() #默认是左右分布的

  5. m1.pack(fill=BOTH, expand=1)

  6.  
  7. left = Label(m1, text='left pane')

  8. m1.add(left)

  9.  
  10. m2 = PanedWindow(orient=VERTICAL)

  11. m1.add(m2)

  12.  
  13. top = Label(m2, text='top pane')

  14. m2.add(top)

  15.  
  16. bottom = Label(m2, text='bottom pane')

  17. m2.add(bottom)

  18.  
  19. mainloop()

 
  1. #显示手柄和分割线

  2. from tkinter import *

  3.  
  4. m1 = PanedWindow(showhandle=True, sashrelief=SUNKEN) #默认是左右分布的

  5. m1.pack(fill=BOTH, expand=1)

  6.  
  7. left = Label(m1, text='left pane')

  8. m1.add(left)

  9.  
  10. m2 = PanedWindow(orient=VERTICAL, showhandle=True, sashrelief=SUNKEN)

  11. m1.add(m2)

  12.  
  13. top = Label(m2, text='top pane')

  14. m2.add(top)

  15.  
  16. bottom = Label(m2, text='bottom pane')

  17. m2.add(bottom)

  18.  
  19. mainloop()

  20. #分割线上的类似正方形的东西就是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:指定子组件的高度

猜你喜欢

转载自blog.csdn.net/weixin_41738417/article/details/81605632
今日推荐