В общем, есть поле ввода, изменения текста в котором нужно отслеживать посимвольно. Точнее той его части, что перед курсором. Для этих целей примерно такой код
from gi.repository import Gtk
class Main():
    def __init__(self):
        self.win = Gtk.Window()
        self.entry = Gtk.Entry()
        self.curpos = 0
        self.entry.connect("insert-text", self.on_insert_text)
        self.entry.connect("delete-text", self.on_delete_text)
        self.entry.connect("changed", self.on_changed)
        self.win.add(self.entry)
        self.win.connect("delete-event", Gtk.main_quit)
        self.win.show_all()
    def on_insert_text(self, entry, text, length, *args):
        self.curpos = entry.get_position() + length
    def on_delete_text(self, entry, start, end, *args):
        self.curpos = start
    def on_changed(self, *args):
        print(self.entry.get_text()[:self.curpos])
if __name__ == "__main__":
    Main()
    Gtk.main()
Оно работает, но при вводе первого символа стабильно выдает варнинг
Warning: g_value_get_int: assertion 'G_VALUE_HOLDS_INT (value)' failed
Gtk 3.10, python3.4.


