tkinter.dnd
— 拖放支持¶
源代码: Lib/tkinter/dnd.py
备注
这是一个实验性功能,当被Tk DND取代时将被弃用。
tkinter.dnd
模块为单个应用程序内、同一窗口内或窗口间的对象提供拖放支持。要使一个对象能够被拖动,您必须为其创建一个事件绑定,以启动拖放过程。通常,您将一个 ButtonPress 事件绑定到您编写的回调函数(参见绑定和事件)。该函数应调用dnd_start()
,其中“source”是要拖动的对象,“event”是调用此事件的事件(您回调函数的参数)。
目标对象的选择过程如下:
自上而下地搜索鼠标下方区域以查找目标小部件
目标小部件应具有可调用的 dnd_accept 属性
如果 dnd_accept 不存在或返回
None
,则搜索移动到父小部件如果没有找到目标小部件,则目标对象为
None
调用 <old_target>.dnd_leave(source, event)
调用 <new_target>.dnd_enter(source, event)
调用 <target>.dnd_commit(source, event) 以通知放置
调用 <source>.dnd_end(target, event) 以表示拖放结束
- class tkinter.dnd.DndHandler(source, event)¶
DndHandler 类处理拖放事件,跟踪事件小部件根上的 Motion 和 ButtonRelease 事件。
- cancel(event=None)¶
取消拖放过程。
- finish(event, commit=0)¶
执行拖放结束函数。
- on_motion(event)¶
在拖动过程中检查鼠标下方区域以查找目标对象。
- on_release(event)¶
当释放模式被触发时,发出拖动结束信号。
- tkinter.dnd.dnd_start(source, event)¶
拖放过程的工厂函数。
参见