summaryrefslogtreecommitdiffstats
path: root/Doc/library/tkinter.dnd.rst
blob: 02de0fd331958de152bc09010c558a57c20e2c9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
:mod:`tkinter.dnd` --- Drag and drop support
============================================

.. module:: tkinter.dnd
   :platform: Tk
   :synopsis: Tkinter drag-and-drop interface

**Source code:** :source:`Lib/tkinter/dnd.py`

--------------

.. note:: This is experimental and due to be deprecated when it is replaced
   with the Tk DND.

The :mod:`tkinter.dnd` module provides drag-and-drop support for objects within
a single application, within the same window or between windows. To enable an
object to be dragged, you must create an event binding for it that starts the
drag-and-drop process. Typically, you bind a ButtonPress event to a callback
function that you write (see :ref:`Bindings-and-Events`). The function should
call :func:`dnd_start`, where 'source' is the object to be dragged, and 'event'
is the event that invoked the call (the argument to your callback function).

Selection of a target object occurs as follows:

#. Top-down search of area under mouse for target widget

 * Target widget should have a callable *dnd_accept* attribute
 * If *dnd_accept* is not present or returns None, search moves to parent widget
 * If no target widget is found, then the target object is None

2. Call to *<old_target>.dnd_leave(source, event)*
#. Call to *<new_target>.dnd_enter(source, event)*
#. Call to *<target>.dnd_commit(source, event)* to notify of drop
#. Call to *<source>.dnd_end(target, event)* to signal end of drag-and-drop


.. class:: DndHandler(source, event)

   The *DndHandler* class handles drag-and-drop events tracking Motion and
   ButtonRelease events on the root of the event widget.

   .. method:: cancel(event=None)

      Cancel the drag-and-drop process.

   .. method:: finish(event, commit=0)

      Execute end of drag-and-drop functions.

   .. method:: on_motion(event)

      Inspect area below mouse for target objects while drag is performed.

   .. method:: on_release(event)

      Signal end of drag when the release pattern is triggered.

.. function:: dnd_start(source, event)

   Factory function for drag-and-drop process.

.. seealso::

   :ref:`Bindings-and-Events`
/tr> -rw-r--r--CMakeVersionSource.cmake1229logstatsplain d---------CPack2534logstatsplain d---------CTest4726logstatsplain d---------Checks308logstatsplain d---------CursesDialog1410logstatsplain d---------Modules45logstatsplain d---------QtDialog1621logstatsplain d---------QtIFW286logstatsplain -rw-r--r--bindexplib.cxx16188logstatsplain -rw-r--r--bindexplib.h857logstatsplain -rw-r--r--cmAddCompileOptionsCommand.cxx931logstatsplain -rw-r--r--cmAddCompileOptionsCommand.h1300logstatsplain -rw-r--r--cmAddCustomCommandCommand.cxx13049logstatsplain -rw-r--r--cmAddCustomCommandCommand.h1541logstatsplain -rw-r--r--cmAddCustomTargetCommand.cxx7521logstatsplain -rw-r--r--cmAddCustomTargetCommand.h1577logstatsplain -rw-r--r--cmAddDefinitionsCommand.cxx998logstatsplain -rw-r--r--cmAddDefinitionsCommand.h1503logstatsplain -rw-r--r--cmAddDependenciesCommand.cxx1984logstatsplain -rw-r--r--cmAddDependenciesCommand.h1438logstatsplain -rw-r--r--cmAddExecutableCommand.cxx6679logstatsplain -rw-r--r--cmAddExecutableCommand.h1464logstatsplain -rw-r--r--cmAddLibraryCommand.cxx12904logstatsplain -rw-r--r--cmAddLibraryCommand.h1440logstatsplain -rw-r--r--cmAddSubDirectoryCommand.cxx3943logstatsplain -rw-r--r--cmAddSubDirectoryCommand.h1561logstatsplain -rw-r--r--cmAddTestCommand.cxx4706logstatsplain -rw-r--r--cmAddTestCommand.h1472logstatsplain -rw-r--r--cmAlgorithms.h9879logstatsplain -rw-r--r--cmArchiveWrite.cxx11273logstatsplain -rw-r--r--cmArchiveWrite.h5058logstatsplain -rw-r--r--cmAuxSourceDirectoryCommand.cxx2783logstatsplain -rw-r--r--cmAuxSourceDirectoryCommand.h1730logstatsplain -rw-r--r--cmBootstrapCommands1.cxx3938logstatsplain -rw-r--r--cmBootstrapCommands2.cxx4374logstatsplain -rw-r--r--cmBreakCommand.cxx2522logstatsplain -rw-r--r--cmBreakCommand.h1530logstatsplain -rw-r--r--cmBuildCommand.cxx4342logstatsplain -rw-r--r--cmBuildCommand.h1695logstatsplain -rw-r--r--cmBuildNameCommand.cxx2751logstatsplain -rw-r--r--cmBuildNameCommand.h1065logstatsplain -rw-r--r--cmCLocaleEnvironmentScope.cxx1791logstatsplain -rw-r--r--cmCLocaleEnvironmentScope.h1004logstatsplain -rw-r--r--cmCMakeHostSystemInformationCommand.cxx3298logstatsplain -rw-r--r--cmCMakeHostSystemInformationCommand.h2019logstatsplain -rw-r--r--cmCMakeMinimumRequired.cxx4230logstatsplain -rw-r--r--cmCMakeMinimumRequired.h1681logstatsplain -rw-r--r--cmCMakePolicyCommand.cxx5271logstatsplain -rw-r--r--cmCMakePolicyCommand.h1782logstatsplain -rw-r--r--cmCPackPropertiesGenerator.cxx1521logstatsplain -rw-r--r--cmCPackPropertiesGenerator.h1256logstatsplain -rw-r--r--cmCPluginAPI.cxx26059logstatsplain -rw-r--r--cmCPluginAPI.h12082logstatsplain -rw-r--r--cmCTest.cxx96039logstatsplain -rw-r--r--cmCTest.h17998logstatsplain -rw-r--r--cmCacheManager.cxx22256logstatsplain -rw-r--r--cmCacheManager.h8007logstatsplain -rw-r--r--cmCallVisualStudioMacro.cxx14112logstatsplain -rw-r--r--cmCallVisualStudioMacro.h1648logstatsplain -rw-r--r--cmCommand.h5126logstatsplain -rw-r--r--cmCommandArgumentLexer.cxx71380logstatsplain -rw-r--r--cmCommandArgumentLexer.h9240logstatsplain -rw-r--r--cmCommandArgumentLexer.in.l4604logstatsplain -rw-r--r--cmCommandArgumentParser.cxx53318logstatsplain -rw-r--r--cmCommandArgumentParser.y4943logstatsplain -rw-r--r--cmCommandArgumentParserHelper.cxx8866logstatsplain -rw-r--r--cmCommandArgumentParserHelper.h3140logstatsplain -rw-r--r--cmCommandArgumentParserTokens.h3152logstatsplain -rw-r--r--cmCommandArgumentsHelper.cxx6654logstatsplain -rw-r--r--cmCommandArgumentsHelper.h7173logstatsplain -rw-r--r--cmCommands.cxx.in697logstatsplain -rw-r--r--cmCommands.h1118logstatsplain -rw-r--r--cmCommandsForBootstrap.cxx653logstatsplain -rw-r--r--cmCommonTargetGenerator.cxx15148logstatsplain -rw-r--r--cmCommonTargetGenerator.h3289logstatsplain -rw-r--r--cmComputeComponentGraph.cxx5000logstatsplain -rw-r--r--cmComputeComponentGraph.h2528logstatsplain -rw-r--r--cmComputeLinkDepends.cxx33286logstatsplain -rw-r--r--cmComputeLinkDepends.h5038logstatsplain -rw-r--r--cmComputeLinkInformation.cxx71162logstatsplain -rw-r--r--cmComputeLinkInformation.h6680logstatsplain -rw-r--r--cmComputeTargetDepends.cxx22852logstatsplain -rw-r--r--cmComputeTargetDepends.h3391logstatsplain -rw-r--r--cmConditionEvaluator.cxx27238logstatsplain -rw-r--r--cmConditionEvaluator.h3334logstatsplain -rw-r--r--cmConfigure.cmake.h.in835logstatsplain -rw-r--r--cmConfigureFileCommand.cxx3959logstatsplain -rw-r--r--cmConfigureFileCommand.h1524logstatsplain -rw-r--r--cmContinueCommand.cxx1399logstatsplain -rw-r--r--cmContinueCommand.h1559logstatsplain -rw-r--r--cmCoreTryCompile.cxx25928logstatsplain -rw-r--r--cmCoreTryCompile.h1869logstatsplain -rw-r--r--cmCreateTestSourceList.cxx5409logstatsplain -rw-r--r--cmCreateTestSourceList.h1381logstatsplain -rw-r--r--cmCryptoHash.cxx4450logstatsplain -rw-r--r--cmCryptoHash.h1865logstatsplain -rw-r--r--cmCurl.cxx2746logstatsplain -rw-r--r--cmCurl.h736logstatsplain -rw-r--r--cmCustomCommand.cxx5108logstatsplain -rw-r--r--cmCustomCommand.h3581logstatsplain -rw-r--r--cmCustomCommandGenerator.cxx5236logstatsplain -rw-r--r--cmCustomCommandGenerator.h1661logstatsplain -rw-r--r--cmDefinePropertyCommand.cxx3412logstatsplain -rw-r--r--cmDefinePropertyCommand.h1314logstatsplain -rw-r--r--cmDefinitions.cxx4246logstatsplain -rw-r--r--cmDefinitions.h2781logstatsplain -rw-r--r--cmDepends.cxx10294logstatsplain -rw-r--r--cmDepends.h4511logstatsplain -rw-r--r--cmDependsC.cxx18610logstatsplain -rw-r--r--cmDependsC.h3279logstatsplain -rw-r--r--cmDependsFortran.cxx26651logstatsplain -rw-r--r--cmDependsFortran.h3312logstatsplain -rw-r--r--cmDependsJava.cxx1486logstatsplain -rw-r--r--cmDependsJava.h1635logstatsplain -rw-r--r--cmDependsJavaLexer.cxx77376logstatsplain -rw-r--r--cmDependsJavaLexer.h9069logstatsplain -rw-r--r--cmDependsJavaLexer.in.l6354logstatsplain -rw-r--r--cmDependsJavaParser.cxx163317logstatsplain -rw-r--r--cmDependsJavaParser.y49696logstatsplain -rw-r--r--cmDependsJavaParserHelper.cxx9758logstatsplain -rw-r--r--cmDependsJavaParserHelper.h3762logstatsplain -rw-r--r--cmDependsJavaParserTokens.h6486logstatsplain -rw-r--r--cmDocumentation.cxx30417logstatsplain -rw-r--r--cmDocumentation.h5144logstatsplain -rw-r--r--cmDocumentationFormatter.cxx5714logstatsplain -rw-r--r--cmDocumentationFormatter.h2030logstatsplain -rw-r--r--cmDocumentationSection.cxx1557logstatsplain -rw-r--r--cmDocumentationSection.h2274logstatsplain -rw-r--r--cmDynamicLoader.cxx3101logstatsplain -rw-r--r--cmDynamicLoader.h1465logstatsplain -rw-r--r--cmELF.cxx26737logstatsplain -rw-r--r--cmELF.h2978logstatsplain -rw-r--r--cmElseCommand.cxx919logstatsplain -rw-r--r--cmElseCommand.h1464logstatsplain -rw-r--r--cmElseIfCommand.cxx852logstatsplain -rw-r--r--cmElseIfCommand.h1480logstatsplain -rw-r--r--cmEnableLanguageCommand.cxx1244logstatsplain -rw-r--r--cmEnableLanguageCommand.h1636logstatsplain -rw-r--r--cmEnableTestingCommand.cxx909logstatsplain -rw-r--r--cmEnableTestingCommand.h2010logstatsplain -rw-r--r--cmEndForEachCommand.cxx955logstatsplain -rw-r--r--cmEndForEachCommand.h1738logstatsplain -rw-r--r--cmEndFunctionCommand.cxx961logstatsplain -rw-r--r--cmEndFunctionCommand.h1746logstatsplain -rw-r--r--cmEndIfCommand.cxx1145logstatsplain -rw-r--r--cmEndIfCommand.h1472logstatsplain -rw-r--r--cmEndMacroCommand.cxx943logstatsplain -rw-r--r--cmEndMacroCommand.h1722logstatsplain -rw-r--r--cmEndWhileCommand.cxx1127logstatsplain -rw-r--r--cmEndWhileCommand.h1735logstatsplain -rw-r--r--cmExecProgramCommand.cxx8475logstatsplain -rw-r--r--cmExecProgramCommand.h1866logstatsplain -rw-r--r--cmExecuteProcessCommand.cxx11540logstatsplain -rw-r--r--cmExecuteProcessCommand.h1639logstatsplain -rw-r--r--cmExecutionStatus.h1671logstatsplain -rw-r--r--cmExpandedCommandArgument.cxx1268logstatsplain -rw-r--r--cmExpandedCommandArgument.h1245logstatsplain -rw-r--r--cmExportBuildFileGenerator.cxx12212logstatsplain -rw-r--r--cmExportBuildFileGenerator.h3197logstatsplain -rw-r--r--cmExportCommand.cxx12003logstatsplain -rw-r--r--cmExportCommand.h2240logstatsplain -rw-r--r--cmExportFileGenerator.cxx43859logstatsplain -rw-r--r--cmExportFileGenerator.h9224logstatsplain -rw-r--r--cmExportInstallFileGenerator.cxx18996logstatsplain -rw-r--r--cmExportInstallFileGenerator.h3980logstatsplain -rw-r--r--cmExportLibraryDependenciesCommand.cxx6248logstatsplain -rw-r--r--cmExportLibraryDependenciesCommand.h1271logstatsplain -rw-r--r--cmExportSet.cxx1239logstatsplain -rw-r--r--cmExportSet.h1550logstatsplain -rw-r--r--cmExportSetMap.cxx1087logstatsplain -rw-r--r--cmExportSetMap.h1189logstatsplain -rw-r--r--cmExportTryCompileFileGenerator.cxx4932logstatsplain -rw-r--r--cmExportTryCompileFileGenerator.h2279logstatsplain -rw-r--r--cmExprLexer.cxx55323logstatsplain -rw-r--r--cmExprLexer.h8580logstatsplain -rw-r--r--cmExprLexer.in.l2120logstatsplain -rw-r--r--cmExprParser.cxx37151logstatsplain -rw-r--r--cmExprParser.y3755logstatsplain -rw-r--r--cmExprParserHelper.cxx2491logstatsplain -rw-r--r--cmExprParserHelper.h1729logstatsplain -rw-r--r--cmExprParserTokens.h2192logstatsplain -rw-r--r--cmExternalMakefileProjectGenerator.cxx2191logstatsplain -rw-r--r--cmExternalMakefileProjectGenerator.h3100logstatsplain -rw-r--r--cmExtraCodeBlocksGenerator.cxx27609logstatsplain -rw-r--r--cmExtraCodeBlocksGenerator.h2650logstatsplain -rw-r--r--cmExtraCodeLiteGenerator.cxx17260logstatsplain -rw-r--r--cmExtraCodeLiteGenerator.h2150logstatsplain -rw-r--r--cmExtraEclipseCDT4Generator.cxx46811logstatsplain -rw-r--r--cmExtraEclipseCDT4Generator.h4884logstatsplain -rw-r--r--cmExtraKateGenerator.cxx11054logstatsplain -rw-r--r--cmExtraKateGenerator.h2439logstatsplain -rw-r--r--cmExtraSublimeTextGenerator.cxx15142logstatsplain -rw-r--r--cmExtraSublimeTextGenerator.h3559logstatsplain -rw-r--r--cmFLTKWrapUICommand.cxx5025logstatsplain -rw-r--r--cmFLTKWrapUICommand.h2007logstatsplain -rw-r--r--cmFileCommand.cxx104421logstatsplain -rw-r--r--cmFileCommand.h3199logstatsplain -rw-r--r--cmFileLock.cxx1896logstatsplain -rw-r--r--cmFileLock.h1906logstatsplain -rw-r--r--cmFileLockPool.cxx4395logstatsplain -rw-r--r--cmFileLockPool.h2426logstatsplain -rw-r--r--cmFileLockResult.cxx2618logstatsplain -rw-r--r--cmFileLockResult.h1803logstatsplain -rw-r--r--cmFileLockUnix.cxx2348logstatsplain -rw-r--r--cmFileLockWin32.cxx2941logstatsplain -rw-r--r--cmFileTimeComparison.cxx8872logstatsplain -rw-r--r--cmFileTimeComparison.h1503logstatsplain -rw-r--r--cmFindBase.cxx11469logstatsplain -rw-r--r--cmFindBase.h1998logstatsplain -rw-r--r--cmFindCommon.cxx12723logstatsplain