2013-09-28 3 views
1

В PyGTK, я хочу, чтобы получить текущую позицию курсора, когда курсор перемещается внутри TextView в моем приложении. Поэтому мне нужно создать функцию обратного вызова и подключиться к сигналу. Но я не уверен, откуда взять этот сигнал.Положение курсора изменяется в TextView

+0

Пожалуйста, ответьте относительно ** 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

Это для GTK 3, не PyGtk как ОП спросил, но принцип подключения к 'уведомит :: курсором position' то же самое. – ptomato

+0

PyGTK больше не поддерживается и не должен использоваться для написания нового кода. – gianmt

+0

Как подключиться к 'notify :: cursor-position' в Pygtk? –

Смежные вопросы