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)¶
用于拖放进程的工厂函数。
��