2010-07-20 3 views

답변

5

일반적으로 전달되는 이벤트 개체의 일부로 제공되기 때문에이 정보를 "가져올"필요가 없습니다. 이벤트에 응답 할 때만이 정보가 필요하기 때문에 이벤트에서 이 정보.

정보를 얻으려면 간결하게 말하면 이벤트 개체에서 정보를 검색하기 만하면됩니다.

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

난 당신이 일반적으로이 정보를 필요가 없습니다 동의하지 않습니다

다음은 예입니다. 나는 사진 편집을 할 수있는 빠른 응용 프로그램을 작성 중입니다 ... 절대적으로 마우스 클릭의 절대 위치가 아닌 상대적 위치가 필요합니다. 나는 당신의 위치가 종종 정확하다고 확신하지만 상대적인 위치, 합법적 인 사용에 대한 합법적 인 용도가 있습니다. – sunny

+0

@sunny :하지만 이벤트를 처리 할 때 그 정보 만 필요하지 않습니까? 정보는 확실히 유용합니다. 이벤트 처리기에서 사용자에게 제공되기 때문에 일반적으로 _get_ 필요하지 않습니다. –

+0

예, 정보가 유용하다는 데 동의합니까? 나는 당신이 그것이 유용한 정보가 아니었다 고 말하고 있다고 생각했습니다. – sunny

2

마우스 이동 이벤트 (x/y_root)의 화면 좌표를 가져 와서 창의 화면 좌표 (window.winfo_rootx()/y())를 뺍니다.

관련 문제