tkinter.dnd — 拖放支持 — Python 文档

来自菜鸟教程
Python/docs/3.10/library/tkinter.dnd
跳转至:导航、​搜索

tkinter.dnd[X15X] — 拖放支持

源代码: :source:`Lib/tkinter/dnd.py`



笔记

这是实验性的,当它被 Tk DND 取代时将被弃用。


tkinter.dnd[X19X] 模块为单个应用程序内、同一窗口内或窗口之间的对象提供拖放支持。 要使对象能够被拖动,您必须为其创建一个事件绑定以启动拖放过程。 通常,您将 ButtonPress 事件绑定到您编写的回调函数(请参阅 绑定和事件 )。 该函数应调用 dnd_start(),其中“源”是要拖动的对象,“事件”是调用调用的事件(回调函数的参数)。

目标对象的选择发生如下:

  1. 鼠标下区域自上而下搜索目标小部件
  • 目标小部件应该有一个可调用的 dnd_accept 属性
  • 如果 dnd_accept 不存在或返回 None,则搜索移动到父小部件
  • 如果未找到目标小部件,则目标对象为 None


  1. 拨电至 .dnd_leave(来源,事件)

  2. 拨电至 .dnd_enter(来源,事件)

  3. 拨电至 .dnd_commit(来源,事件) 通知放弃

  4. 拨电至 .dnd_end(目标,事件) 表示拖放结束

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)
拖放过程的工厂功能。

也可以看看

绑定和事件