Как получить положение мыши относительно родительского виджета в tkinter? - PullRequest
4 голосов
/ 20 июля 2010

Мне нужно получить положение мыши относительно окна tkinter.

Ответы [ 2 ]

5 голосов
/ 20 июля 2010

Вообще говоря, вам никогда не нужно «получать» эту информацию, потому что она передается вам как часть объекта события, который передается. Эта информация вам, вероятно, нужна только при ответе на событие, и событие дает вам это Информация.

Проще говоря, чтобы получить информацию, вам просто нужно извлечь ее из объекта события.

Вот пример:

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()
2 голосов
/ 20 июля 2010

Получить экранные координаты события перемещения мыши (x / y_root) и вычесть экранные координаты окна (window.winfo_rootx() / y()).

...