Popular Python recipes tagged "bind"http://code.activestate.com/recipes/langs/python/tags/bind/2017-05-05T20:33:31-07:00ActiveState Code Recipesbind all tkinter "bug" (Python) 2017-05-05T20:33:31-07:00Miguel Martínez Lópezhttp://code.activestate.com/recipes/users/4189907/http://code.activestate.com/recipes/580795-bind-all-tkinter-bug/ <p style="color: grey"> Python recipe 580795 by <a href="/recipes/users/4189907/">Miguel Martínez López</a> (<a href="/recipes/tags/all/">all</a>, <a href="/recipes/tags/bind/">bind</a>, <a href="/recipes/tags/binding/">binding</a>, <a href="/recipes/tags/tkinter/">tkinter</a>). Revision 3. </p> <p>This recipes tries to solve the problem of bind_all and unbind_all for tkinter.</p> <p>When a callback is registered using bind_all method and later it's unregistered using unbind_all, all the callbacks are deleted for the "all" tag event. This makes difficult to register and unregister only one callback at a time. This recipes tries to solve this problem.</p> <p>Observe the difference between the code below and the recipe. With the code below, when the user clicks nothing happens. But with my recipe it's possible to bind and unbind specific callbacks.</p> <pre class="prettyprint"><code>try: from Tkinter import Tk, Frame except ImportError: from tkinter import Tk, Frame root = Tk() f = Frame(root, width= 300, height=300) f.pack() def callback1(event): print("callback1") def callback2(event): print("callback2") def callback3(event): print("callback3") root.bind_all("&lt;1&gt;", callback1, add="+") f.bind_all("&lt;1&gt;", callback2, add="+") f.bind_all("&lt;1&gt;", callback3, add="+") f.unbind_all("&lt;1&gt;") root.mainloop() </code></pre>