2010-07-19 11 views
0

현재 TextView에서 마우스 오른쪽 버튼을 클릭하면 팝업 메뉴가 표시되지만 커서가 실제로 마우스 오른쪽 버튼을 클릭 한 위치로 변경되지는 않습니다. 맞춤법 검사 메뉴를 구현하려고하는 나에게 올바른 위치에 커서를 올리려면 마우스 오른쪽 버튼을 클릭해야하기 때문에 좋지 않습니다. 그래서, 내 질문은 실제로 어떻게 든이 일을 할 수 있도록이 동작을 어떻게 든 수정할 수있는 방법이 있다면?TextView에서 마우스 오른쪽 버튼을 클릭하면 커서가 이동합니까?

답변

3

글쎄, 나는 gtk.TextView.get_pointer와 gtk.TextView.window_to_buffer_coords로 연결되는 gtk.TextView.get_iter_at_location을 우연히 발견했다. 기본적으로

x, y = self.textView.get_pointer() 
    x, y = self.textView.window_to_buffer_coords(gtk.TEXT_WINDOW_WIDGET, x, y) 
    if self.textView.get_iter_at_location(x, y).has_tag(self.errTag): 
     # Code here 

, 그것은, (윈도우에 비해) 포인터의 위치를 ​​가져옵니다 그것이 내가 gtk.TEXT_WINDOW_TEXT는 GTK와 같은 좌표를주는 것을 발견 (좌표를 버퍼 변환 : 기본적으로,이 작업을 얻기 위해,이했던 .TEXT_WINDOW_WIDGET,하지만 나는주의의 측면에서 잘못 생각하고 위젯의 창을 사용), 그 위치에서 iter를 얻는다. 멋지게 작동합니다.

관련 문제