在tkinter中,由
提供绑定信息。
但是同其它绑定事件一样,滚动事件同样提供的event
参数返回值,也拥有特殊的属性,比如send_event
,delta
,state
等。
现在来具体看一下。
因为不涉及具体应用,这里使用的代码很简短。
from tkinter import *def test(event):print(event)a=Tk()c=Canvas(a)
c.pack(fill='both',expand=True)
c.bind('',test)a.mainloop()
其实也没有多具体,就是三种滚动方式:
可以得到以下返回值:
不难看出,我们可以知道除了网上常说的delta
属性以外,还有state
属性。对应关系如下:
而send_event还不清楚其意义,应该是tcl/tk内部对于控件自身滚动可视范围的调节参数。
其实从这里就可以看出,在文本框(Text)中还有xscrollcommand
可以用,但是画布(Canvas)呢?只能通过绑定滚动事件来滚动可视范围了。
比如我写的TinUI,就需要整个界面能够自由滚动,那么我就不能直接将滚动事件绑定到滚动条上,而是通过判断滚动方式,也就是state
,来判断该激活哪一个滚动条。
同样的,该功能可以应用于渲染、绘图、图片编辑等控件实例。
【笔记】