parthtamu/rag-code-assistant
0
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 — 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> »</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> »173 </li>174 175 <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> »</li>176 <li class="nav-item nav-item-2"><a href="tk.html" accesskey="U">Graphical user interfaces with Tk</a> »</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><old_target>.dnd_leave(source, event)</em></p></li>236<li><p>Call to <em><new_target>.dnd_enter(source, event)</em></p></li>237<li><p>Call to <em><target>.dnd_commit(source, event)</em> to notify of drop</p></li>238<li><p>Call to <em><source>.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> »</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> »362 </li>363 364 <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> »</li>365 <li class="nav-item nav-item-2"><a href="tk.html" >Graphical user interfaces with Tk</a> »</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 © <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>