Приветствую.
Захотел выводить содержимое лог-файлов по мере поступления данных в них. Решил использовать glib.io_add_watch(). Вот что получилось:
class LogBuffer(gtk.TextBuffer):
def __init__(self):
super(LogBuffer, self).__init__()
def load_file(self, filename):
self.delete(self.get_start_iter(), self.get_end_iter())
fd = open(filename, 'rb')
iter = self.get_start_iter()
for i in fd:
self.insert(iter, i)
glib.io_add_watch(fd, glib.IO_IN, self.__on_file_change)
def __on_file_change(self, fd, condition):
iter = self.get_end_iter()
for i in fd:
self.insert(iter, i)
return True
Что за фигня?