tkinter.dnd
--- 拖放操作支持?
源代碼: Lib/tkinter/dnd.py
備注
此模塊是實(shí)驗性的且在為 Tk DND 所替代后將被棄用。
tkinter.dnd
模塊為單個(gè)應用內部的對象提供了在同一窗口中或多個(gè)窗口間的拖放操作支持。 要將對象設為可拖放,你必須為其創(chuàng )建啟動(dòng)拖放進(jìn)程的事件綁定。 通常,你要將 ButtonPress 事件綁定到你所編寫(xiě)的回調函數 (參見(jiàn) 綁定和事件)。 該函數應當調用 dnd_start()
,其中 'source' 為要拖動(dòng)的對象,而 'event' 為發(fā)起調用的事件(你的回調函數的參數)。
目標對象的選擇方式如下:
從頂至底地在鼠標之下的區域中搜索目標控件
目標控件應當具有一個(gè)指向可調用對象的 dnd_accept 屬性
如果 dnd_accept 不存在或是返回 None,則將轉至父控件中搜索
如果目標控件未找到,則目標對象為 None
調用 <old_target>.dnd_leave(source, event)
調用 <new_target>.dnd_enter(source, event)
調用 <target>.dnd_commit(source, event) 來(lái)通知釋放
調用 <source>.dnd_end(target, event) 來(lái)表明拖放的結束
- class tkinter.dnd.DndHandler(source, event)?
DndHandler 類(lèi)處理拖放事件,在事件控件的根對象上跟蹤 Motion 和 ButtonRelease 事件。
- cancel(event=None)?
取消拖放進(jìn)程。
- finish(event, commit=0)?
執行結束播放函數。
- on_motion(event)?
在執行拖動(dòng)期間為目標對象檢查鼠標之下的區域。
- on_release(event)?
當釋放模式被觸發(fā)時(shí)表明拖動(dòng)的結束。
- tkinter.dnd.dnd_start(source, event)?
用于拖放進(jìn)程的工廠(chǎng)函數。
參見(jiàn)