一、前言
当我们需要提供一个可供用户调整的多空间框架的时候,可以使用 PanedWindow 组件。PanedWindow 组件会为每一个子组件生成一个独立的窗格,用户可以自由调整窗格的大小。
二、创建一个两窗格的PanedWindow
代码实现:
from tkinter import *
m = PanedWindow(orient = VERTICAL)
m.pack(fill = BOTH,expand = 1)
top = Label(m,text = "top pane",bg = "blue")
m.add(top)
bottom = Label(m,text = "bottom pane",bg = "red")
m.add(bottom)
mainloop()
运行
在top pane 和 bottom pane中间有一条看不见的横线(由于我们给Label添加了背景色,所以它通过空白显示出来了),移动它上下滑动,可以看见Label组件跟着在变动。
三、创建一个三窗格的PanedWindow
代码实现:
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) #小技巧,在m1组件上添加m2组件
top = Label(m2, text='top pane')
m2.add(top)
bottom = Label(m2, text='bottom pane')
m2.add(bottom)
mainloop()
运行:
三个Label间有两条隐藏的线,把鼠标放在上面即可拖动,调整Label的大小。
四、将组件中间的线显示出来
代码实现:
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()
运行:
五、结语
如您在使用过程中有任何问题,请加QQ群进一步交流。
QQ交流群:906015840 (备注:物联网项目交流)。
获取资料:微信扫描下方二维码,关注公众号:一个物联网项目的前世今生。
静晨出品:静之所想,晨之所计