2013-12-18 2 views
1

저는 Python을 처음 접했고이 문제를 해결하는 데 실패했습니다. 레이블을 사용하여 이미지를 표시하는 TKinter를 사용하는 GUI가 있습니다. 나는 사용자가 이미지의 두 장소를 클릭하고 그 두 픽셀 위치를 다른 곳에서 사용할 수 있기를 바랍니다.TKinter에서 마우스 클릭으로 픽셀 위치 가져 오기

다음은 지금까지 사용하고있는 기본 코드이지만 픽셀 위치를 반환 할 수 없습니다. 나는 묶는 것이 내가 사용하고 싶은 것이 아니라고 믿는다. 또 다른 선택이 있는가?

px = [] 
py = [] 

def onmouse(event): 
     px.append(event.x) 
     py.append(event.y) 
     return px,py 

self.ImgPanel.bind('<button-1>',onmouse) 

내가 사용하려고하면 : 나는 오류가

px,py = self.ImgPanel.bind('<button-1>',onmouse) 

당신이 X를 캡처 할 경우

+0

당신이 할 수있는 최선의 방법은 해결하려는 문제를 보여주는 가장 작은 프로그램을 만드는 것입니다. 종종 그러한 일을하는 바로 그 행동이 해결책을 분명하게합니다. 적어도 그것은 우리에게 출발점을 제공합니다. 특정 코드 행에 대해 질문 할 때는 코드 스 니펫을 사용할 수 있지만 더 광범위한 주제를 묻는다면 최소한의 작업 프로그램에서 시작하는 것이 가장 좋습니다. –

답변

1

바인드는, 당신이 원하는 Y는 "너무 많은 값을 풀고" 클릭의 좌표 그러나 바인딩에서 호출 된 함수는 "반환"하지 않습니다. 기술적으로는 그렇지만 Tkinter의 내부에 가치를 되돌려줍니다.

바운드 기능 내에서 인스턴스 또는 전역 변수를 설정해야합니다. 질문에 포함 된 코드에서 global px,py을 추가하면 다른 코드에서이 값을 사용할 수 있습니다.

+0

이것은 잘 작동합니다. – user3115691

관련 문제