2012-12-22 3 views
0

그래프 이론에 관한 학교 프로젝트를 쓰고 있습니다. 일부 그래프 알고리즘 (Dijkstra 's, Prim 's 등)을 구현해야합니다. 그 후에 동일한 프로그램에서 시각화해야합니다.마우스 클릭시 마우스 위치를 얻는 방법 - Python Gtk

그래프를 시각화하기 위해 그림 영역 내에 직사각형과 선을 그릴 수 있습니다. 하지만 대화식으로 만들기 위해 마우스 이벤트를 처리해야합니다.

예를 들어 그래프에 정점을 추가하려면 마우스 위치가 필요합니다.

본국 네이티브가 영어가 아닙니다. 나는 내 문제를 훌륭하게 설명 할 수 없었다. :)

답변

2

gtk.EventBox 및 event'ss xy 필드를 사용

import gtk 

win = gtk.Window() 
box = gtk.EventBox() 
area = gtk.DrawingArea() 

def onclick (box, event): 
    print event.x, event.y 

box.connect ('button-press-event', onclick) 

box.add (area) 
win.add (box) 
win.show_all() 
win.connect ('destroy', lambda *x: gtk.main_quit()) 

gtk.main() 
+2

내가 볼 수없는 당신이 여기에 EventBox를 필요 이유, drawingarea은 그 자체로 마우스 이벤트를 캡처 할 수 있습니다. – ergosys

+0

@ergosys : 아마도 당신 말이 맞을 것입니다. 그것은 기본적으로 보이지 않습니다, 나는 이벤트 캡처를 가능하게하는 몇 가지 기능이 있다고 생각합니다. 그것이 무엇인지 기억한다면 대답을 편집하십시오. – doublep

관련 문제