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