Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I get mouse position relative to the parent widget in tkinter?

I need to get the mouse position relative to the tkinter window.

like image 352
rectangletangle Avatar asked Jul 20 '10 08:07

rectangletangle


2 Answers

Generally speaking you should never need to "get" this information because it is given to you as part of the event object that is passed in. You probably only need this information when responding to an event, and the event gives you this information.

Put more succinctly, to get the information you simply have to retrieve it from the event object.

Here's an example:

import Tkinter

class App:
    def __init__(self, root):
        f = Tkinter.Frame(width=100, height=100, background="bisque")
        f.pack(padx=100, pady=100)
        f.bind("<1>", self.OnMouseDown)

    def OnMouseDown(self, event):
        print "frame coordinates: %s/%s" % (event.x, event.y)
        print "root coordinates: %s/%s" % (event.x_root, event.y_root)

root=Tkinter.Tk()
app = App(root)
root.mainloop()
like image 172
Bryan Oakley Avatar answered Sep 29 '22 23:09

Bryan Oakley


Get the screen coordinates of the mouse move event (x/y_root) and subtract the screen coordinates of the window (window.winfo_rootx()/y()).

like image 32
Aaron Digulla Avatar answered Sep 29 '22 22:09

Aaron Digulla