Team Ai
Apppublic

parthtamu/rag-code-assistant

sourceHugging Faceupdated 7mo agoView on Hugging Face
0likes
tkinter.dnd.html417 linesDownload Raw Back to docs
1<!DOCTYPE html>2 3<html lang="en" data-content_root="../">4  <head>5    <meta charset="utf-8" />6    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />7<meta property="og:title" content="tkinter.dnd — Drag and drop support" />8<meta property="og:type" content="website" />9<meta property="og:url" content="https://docs.python.org/3/library/tkinter.dnd.html" />10<meta property="og:site_name" content="Python documentation" />11<meta property="og:description" content="Source code: Lib/tkinter/dnd.py The 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 d..." />12<meta property="og:image:width" content="1146" />13<meta property="og:image:height" content="600" />14<meta property="og:image" content="https://docs.python.org/3.15/_images/social_previews/summary_library_tkinter.dnd_353a3e56.png" />15<meta property="og:image:alt" content="Source code: Lib/tkinter/dnd.py The 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 d..." />16<meta name="description" content="Source code: Lib/tkinter/dnd.py The 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 d..." />17<meta name="twitter:card" content="summary_large_image" />18<meta name="theme-color" content="#3776ab">19 20    <title>tkinter.dnd — Drag and drop support &#8212; Python 3.15.0a6 documentation</title><meta name="viewport" content="width=device-width, initial-scale=1.0">21    22    <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />23    <link rel="stylesheet" type="text/css" href="../_static/classic.css?v=234b1a7c" />24    <link rel="stylesheet" type="text/css" href="../_static/pydoctheme.css?v=89a2f22a" />25    <link rel="stylesheet" type="text/css" href="../_static/profiling-sampling-visualization.css?v=0c2600ae" />26    <link id="pygments_dark_css" media="(prefers-color-scheme: dark)" rel="stylesheet" type="text/css" href="../_static/pygments_dark.css?v=5349f25f" />27    28    <script src="../_static/documentation_options.js?v=6b7c9ff5"></script>29    <script src="../_static/doctools.js?v=9bcbadda"></script>30    <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>31    <script src="../_static/profiling-sampling-visualization.js?v=9811ed04"></script>32    33    <script src="../_static/sidebar.js"></script>34    35    <link rel="search" type="application/opensearchdescription+xml"36          title="Search within Python 3.15.0a6 documentation"37          href="../_static/opensearch.xml"/>38    <link rel="author" title="About these documents" href="../about.html" />39    <link rel="index" title="Index" href="../genindex.html" />40    <link rel="search" title="Search" href="../search.html" />41    <link rel="copyright" title="Copyright" href="../copyright.html" />42    <link rel="next" title="tkinter.ttk — Tk themed widgets" href="tkinter.ttk.html" />43    <link rel="prev" title="tkinter.scrolledtext — Scrolled Text Widget" href="tkinter.scrolledtext.html" />44    45      46      <script defer file-types="bz2,epub,zip" data-domain="docs.python.org" src="https://analytics.python.org/js/script.file-downloads.outbound-links.js"></script>47      48      <link rel="canonical" href="https://docs.python.org/3/library/tkinter.dnd.html">49      50    51 52    53    <style>54      @media only screen {55        table.full-width-table {56            width: 100%;57        }58      }59    </style>60<link rel="stylesheet" href="../_static/pydoctheme_dark.css" media="(prefers-color-scheme: dark)" id="pydoctheme_dark_css">61    <link rel="shortcut icon" type="image/png" href="../_static/py.svg">62            <script type="text/javascript" src="../_static/copybutton.js"></script>63            <script type="text/javascript" src="../_static/menu.js"></script>64            <script type="text/javascript" src="../_static/search-focus.js"></script>65            <script type="text/javascript" src="../_static/themetoggle.js"></script> 66            <script type="text/javascript" src="../_static/rtd_switcher.js"></script>67            <meta name="readthedocs-addons-api-version" content="1">68 69  </head>70<body>71<div class="mobile-nav">72    <input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"73           aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu">74    <nav class="nav-content" role="navigation">75        <label for="menuToggler" class="toggler__label">76            <span></span>77        </label>78        <span class="nav-items-wrapper">79            <a href="https://www.python.org/" class="nav-logo">80                <img src="../_static/py.svg" alt="Python logo">81            </a>82            <span class="version_switcher_placeholder"></span>83            <form role="search" class="search" action="../search.html" method="get">84                <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">85                    <path fill-rule="nonzero" fill="currentColor" d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>86                </svg>87                <input placeholder="Quick search" aria-label="Quick search" type="search" name="q">88                <input type="submit" value="Go">89            </form>90        </span>91    </nav>92    <div class="menu-wrapper">93        <nav class="menu" role="navigation" aria-label="main navigation">94            <div class="language_switcher_placeholder"></div>95            96<label class="theme-selector-label">97    Theme98    <select class="theme-selector" oninput="activateTheme(this.value)">99        <option value="auto" selected>Auto</option>100        <option value="light">Light</option>101        <option value="dark">Dark</option>102    </select>103</label>104  <div>105    <h4>Previous topic</h4>106    <p class="topless"><a href="tkinter.scrolledtext.html"107                          title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.scrolledtext</span></code> — Scrolled Text Widget</a></p>108  </div>109  <div>110    <h4>Next topic</h4>111    <p class="topless"><a href="tkinter.ttk.html"112                          title="next chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.ttk</span></code> — Tk themed widgets</a></p>113  </div>114  <script>115    document.addEventListener('DOMContentLoaded', () => {116        const title = document.querySelector('meta[property="og:title"]').content;117        const elements = document.querySelectorAll('.improvepage');118        const pageurl = window.location.href.split('?')[0];119        elements.forEach(element => {120            const url = new URL(element.href.split('?')[0].replace("-nojs", ""));121            url.searchParams.set('pagetitle', title);122            url.searchParams.set('pageurl', pageurl);123            url.searchParams.set('pagesource', "library/tkinter.dnd.rst");124            element.href = url.toString();125        });126    });127  </script>128  <div role="note" aria-label="source link">129    <h3>This page</h3>130    <ul class="this-page-menu">131      <li><a href="../bugs.html">Report a bug</a></li>132      <li><a class="improvepage" href="../improve-page-nojs.html">Improve this page</a></li>133      <li>134        <a href="https://github.com/python/cpython/blob/main/Doc/library/tkinter.dnd.rst?plain=1"135            rel="nofollow">Show source136        </a>137      </li>138      139    </ul>140  </div>141        </nav>142    </div>143</div>144 145  146    <div class="related" role="navigation" aria-label="Related">147      <h3>Navigation</h3>148      <ul>149        <li class="right" style="margin-right: 10px">150          <a href="../genindex.html" title="General Index"151             accesskey="I">index</a></li>152        <li class="right" >153          <a href="../py-modindex.html" title="Python Module Index"154             >modules</a> |</li>155        <li class="right" >156          <a href="tkinter.ttk.html" title="tkinter.ttk — Tk themed widgets"157             accesskey="N">next</a> |</li>158        <li class="right" >159          <a href="tkinter.scrolledtext.html" title="tkinter.scrolledtext — Scrolled Text Widget"160             accesskey="P">previous</a> |</li>161 162          <li><img src="../_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>163          <li><a href="https://www.python.org/">Python</a> &#187;</li>164          <li class="switchers">165            <div class="language_switcher_placeholder"></div>166            <div class="version_switcher_placeholder"></div>167          </li>168          <li>169              170          </li>171    <li id="cpython-language-and-version">172      <a href="../index.html">3.15.0a6 Documentation</a> &#187;173    </li>174 175          <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> &#187;</li>176          <li class="nav-item nav-item-2"><a href="tk.html" accesskey="U">Graphical user interfaces with Tk</a> &#187;</li>177        <li class="nav-item nav-item-this"><a href=""><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.dnd</span></code> — Drag and drop support</a></li>178                <li class="right">179                    180 181    <div class="inline-search" role="search">182        <form class="inline-search" action="../search.html" method="get">183          <input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box">184          <input type="submit" value="Go">185        </form>186    </div>187                     |188                </li>189            <li class="right">190<label class="theme-selector-label">191    Theme192    <select class="theme-selector" oninput="activateTheme(this.value)">193        <option value="auto" selected>Auto</option>194        <option value="light">Light</option>195        <option value="dark">Dark</option>196    </select>197</label> |</li>198            199      </ul>200    </div>    201 202    <div class="document">203      <div class="documentwrapper">204        <div class="bodywrapper">205          <div class="body" role="main">206            207  <section id="module-tkinter.dnd">208<span id="tkinter-dnd-drag-and-drop-support"></span><h1><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.dnd</span></code> — Drag and drop support<a class="headerlink" href="#module-tkinter.dnd" title="Link to this heading">¶</a></h1>209<p><strong>Source code:</strong> <a class="extlink-source reference external" href="https://github.com/python/cpython/tree/main/Lib/tkinter/dnd.py">Lib/tkinter/dnd.py</a></p>210<hr class="docutils" />211<div class="admonition note">212<p class="admonition-title">Note</p>213<p>This is experimental and due to be deprecated when it is replaced214with the Tk DND.</p>215</div>216<p>The <code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.dnd</span></code> module provides drag-and-drop support for objects within217a single application, within the same window or between windows. To enable an218object to be dragged, you must create an event binding for it that starts the219drag-and-drop process. Typically, you bind a ButtonPress event to a callback220function that you write (see <a class="reference internal" href="tkinter.html#bindings-and-events"><span class="std std-ref">Bindings and Events</span></a>). The function should221call <a class="reference internal" href="#tkinter.dnd.dnd_start" title="tkinter.dnd.dnd_start"><code class="xref py py-func docutils literal notranslate"><span class="pre">dnd_start()</span></code></a>, where ‘source’ is the object to be dragged, and ‘event’222is the event that invoked the call (the argument to your callback function).</p>223<p>Selection of a target object occurs as follows:</p>224<ol class="arabic simple">225<li><p>Top-down search of area under mouse for target widget</p></li>226</ol>227<blockquote>228<div><ul class="simple">229<li><p>Target widget should have a callable <em>dnd_accept</em> attribute</p></li>230<li><p>If <em>dnd_accept</em> is not present or returns <code class="docutils literal notranslate"><span class="pre">None</span></code>, search moves to parent widget</p></li>231<li><p>If no target widget is found, then the target object is <code class="docutils literal notranslate"><span class="pre">None</span></code></p></li>232</ul>233</div></blockquote>234<ol class="arabic simple" start="2">235<li><p>Call to <em>&lt;old_target&gt;.dnd_leave(source, event)</em></p></li>236<li><p>Call to <em>&lt;new_target&gt;.dnd_enter(source, event)</em></p></li>237<li><p>Call to <em>&lt;target&gt;.dnd_commit(source, event)</em> to notify of drop</p></li>238<li><p>Call to <em>&lt;source&gt;.dnd_end(target, event)</em> to signal end of drag-and-drop</p></li>239</ol>240<dl class="py class">241<dt class="sig sig-object py" id="tkinter.dnd.DndHandler">242<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">tkinter.dnd.</span></span><span class="sig-name descname"><span class="pre">DndHandler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">source</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">event</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tkinter.dnd.DndHandler" title="Link to this definition">¶</a></dt>243<dd><p>The <em>DndHandler</em> class handles drag-and-drop events tracking Motion and244ButtonRelease events on the root of the event widget.</p>245<dl class="py method">246<dt class="sig sig-object py" id="tkinter.dnd.DndHandler.cancel">247<span class="sig-name descname"><span class="pre">cancel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">event</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tkinter.dnd.DndHandler.cancel" title="Link to this definition">¶</a></dt>248<dd><p>Cancel the drag-and-drop process.</p>249</dd></dl>250 251<dl class="py method">252<dt class="sig sig-object py" id="tkinter.dnd.DndHandler.finish">253<span class="sig-name descname"><span class="pre">finish</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">event</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">commit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tkinter.dnd.DndHandler.finish" title="Link to this definition">¶</a></dt>254<dd><p>Execute end of drag-and-drop functions.</p>255</dd></dl>256 257<dl class="py method">258<dt class="sig sig-object py" id="tkinter.dnd.DndHandler.on_motion">259<span class="sig-name descname"><span class="pre">on_motion</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">event</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tkinter.dnd.DndHandler.on_motion" title="Link to this definition">¶</a></dt>260<dd><p>Inspect area below mouse for target objects while drag is performed.</p>261</dd></dl>262 263<dl class="py method">264<dt class="sig sig-object py" id="tkinter.dnd.DndHandler.on_release">265<span class="sig-name descname"><span class="pre">on_release</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">event</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tkinter.dnd.DndHandler.on_release" title="Link to this definition">¶</a></dt>266<dd><p>Signal end of drag when the release pattern is triggered.</p>267</dd></dl>268 269</dd></dl>270 271<dl class="py function">272<dt class="sig sig-object py" id="tkinter.dnd.dnd_start">273<span class="sig-prename descclassname"><span class="pre">tkinter.dnd.</span></span><span class="sig-name descname"><span class="pre">dnd_start</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">source</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">event</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#tkinter.dnd.dnd_start" title="Link to this definition">¶</a></dt>274<dd><p>Factory function for drag-and-drop process.</p>275</dd></dl>276 277<div class="admonition seealso">278<p class="admonition-title">See also</p>279<p><a class="reference internal" href="tkinter.html#bindings-and-events"><span class="std std-ref">Bindings and Events</span></a></p>280</div>281</section>282 283 284            <div class="clearer"></div>285          </div>286        </div>287      </div>288      <div class="sphinxsidebar" role="navigation" aria-label="Main">289        <div class="sphinxsidebarwrapper">290  <div>291    <h4>Previous topic</h4>292    <p class="topless"><a href="tkinter.scrolledtext.html"293                          title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.scrolledtext</span></code> — Scrolled Text Widget</a></p>294  </div>295  <div>296    <h4>Next topic</h4>297    <p class="topless"><a href="tkinter.ttk.html"298                          title="next chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.ttk</span></code> — Tk themed widgets</a></p>299  </div>300  <script>301    document.addEventListener('DOMContentLoaded', () => {302        const title = document.querySelector('meta[property="og:title"]').content;303        const elements = document.querySelectorAll('.improvepage');304        const pageurl = window.location.href.split('?')[0];305        elements.forEach(element => {306            const url = new URL(element.href.split('?')[0].replace("-nojs", ""));307            url.searchParams.set('pagetitle', title);308            url.searchParams.set('pageurl', pageurl);309            url.searchParams.set('pagesource', "library/tkinter.dnd.rst");310            element.href = url.toString();311        });312    });313  </script>314  <div role="note" aria-label="source link">315    <h3>This page</h3>316    <ul class="this-page-menu">317      <li><a href="../bugs.html">Report a bug</a></li>318      <li><a class="improvepage" href="../improve-page-nojs.html">Improve this page</a></li>319      <li>320        <a href="https://github.com/python/cpython/blob/main/Doc/library/tkinter.dnd.rst?plain=1"321            rel="nofollow">Show source322        </a>323      </li>324      325    </ul>326  </div>327        </div>328<div id="sidebarbutton" title="Collapse sidebar">329<span>«</span>330</div>331 332      </div>333      <div class="clearer"></div>334    </div>  335    <div class="related" role="navigation" aria-label="Related">336      <h3>Navigation</h3>337      <ul>338        <li class="right" style="margin-right: 10px">339          <a href="../genindex.html" title="General Index"340             >index</a></li>341        <li class="right" >342          <a href="../py-modindex.html" title="Python Module Index"343             >modules</a> |</li>344        <li class="right" >345          <a href="tkinter.ttk.html" title="tkinter.ttk — Tk themed widgets"346             >next</a> |</li>347        <li class="right" >348          <a href="tkinter.scrolledtext.html" title="tkinter.scrolledtext — Scrolled Text Widget"349             >previous</a> |</li>350 351          <li><img src="../_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>352          <li><a href="https://www.python.org/">Python</a> &#187;</li>353          <li class="switchers">354            <div class="language_switcher_placeholder"></div>355            <div class="version_switcher_placeholder"></div>356          </li>357          <li>358              359          </li>360    <li id="cpython-language-and-version">361      <a href="../index.html">3.15.0a6 Documentation</a> &#187;362    </li>363 364          <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> &#187;</li>365          <li class="nav-item nav-item-2"><a href="tk.html" >Graphical user interfaces with Tk</a> &#187;</li>366        <li class="nav-item nav-item-this"><a href=""><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.dnd</span></code> — Drag and drop support</a></li>367                <li class="right">368                    369 370    <div class="inline-search" role="search">371        <form class="inline-search" action="../search.html" method="get">372          <input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box">373          <input type="submit" value="Go">374        </form>375    </div>376                     |377                </li>378            <li class="right">379<label class="theme-selector-label">380    Theme381    <select class="theme-selector" oninput="activateTheme(this.value)">382        <option value="auto" selected>Auto</option>383        <option value="light">Light</option>384        <option value="dark">Dark</option>385    </select>386</label> |</li>387            388      </ul>389    </div>  390    <div class="footer">391    &copy; <a href="../copyright.html">Copyright</a> 2001 Python Software Foundation.392    <br>393    This page is licensed under the Python Software Foundation License Version 2.394    <br>395    Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.396    <br>397    398      See <a href="/license.html">History and License</a> for more information.<br>399    400    401    <br>402 403    The Python Software Foundation is a non-profit corporation.404<a href="https://www.python.org/psf/donations/">Please donate.</a>405<br>406    <br>407      Last updated on Mar 10, 2026 (08:58 UTC).408    409      <a href="/bugs.html">Found a bug</a>?410    411    <br>412 413    Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.414    </div>415 416  </body>417</html>