rectangletangle
rectangletangle

Reputation: 52941

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.

Upvotes: 5

Views: 10453

Answers (2)

Bryan Oakley
Bryan Oakley

Reputation: 385970

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()

Upvotes: 6

Aaron Digulla
Aaron Digulla

Reputation: 328604

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

Upvotes: 3

Related Questions