2013-09-28 2 views
1

PyGTK에서 커서가 앱의 텍스트 뷰 내에서 이동할 때마다 커서의 현재 위치를 가져 오려고합니다. 그래서 콜백 함수를 만들고 신호에 연결해야합니다. 하지만 그 신호를 어디에서 얻을지 확신 할 수 없습니다.커서 위치가 텍스트 뷰에서 변경되었습니다

+0

** GTK 3의 Pygtk ** –

답변

1

버퍼의 커서 위치 속성을 모니터링하려면 커서 위치를 모니터링하는 아래의 예제를 살펴보십시오.

from gi.repository import Gtk 

class CursorSample(Gtk.Application): 
    def __init__(self): 
     Gtk.Application.__init__(self, application_id="org.app.CursorSample") 

     self.buffer = Gtk.TextBuffer() 
     self.buffer.connect("notify::cursor-position", 
          self.on_cursor_position_changed) 

     self.tw = Gtk.TextView() 
     self.tw.set_buffer(self.buffer) 
     self.tw.props.wrap_mode = Gtk.WrapMode.CHAR 

    def do_activate(self): 
     main_window = Gtk.Window(Gtk.WindowType.TOPLEVEL) 
     main_window.add(self.tw) 
     self.add_window(main_window) 
     main_window.set_position(Gtk.WindowPosition.CENTER) 
     main_window.show_all() 

    def on_cursor_position_changed(self, buffer, data=None): 
     print buffer.props.cursor_position 

if __name__ == "__main__": 
    cursorsample = CursorSample() 
    cursorsample.run(None) 
+0

가 물었다 OP처럼 PyGTK하지 대한 대답하지만, 연결의 원리하세요'통지 :: 커서 position'은 동일합니다. – ptomato

+0

PyGTK는 더 이상 유지 관리되지 않으므로 새 코드를 작성하는 데 사용해서는 안됩니다. – gianmt

+0

Pygtk에서'notify :: cursor-position'에 어떻게 연결합니까? –