Два дня после удара пинал МПХ-и и сегодня с новsми силами разобрался.
Что бы не было такого, что ссылка в гугле ведёт в тупик, привожу пример.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#Простите за быдлокод^_^
from gi.repository import Gtk
class ex:
def __init__(self):
#Тем кто немного понимает и так понятно
self.window = Gtk.Window()
self.window.set_border_width(8)
self.window.set_title("Пример работы с TextView")
self.window.set_default_size(300, 150)
self.window.connect('destroy', Gtk.main_quit)
self.box=Gtk.VBox()
self.window.add(self.box)
self.view=Gtk.TextView()
#Создаём буфер
self.buffer=Gtk.TextBuffer()
#И соеденияем его с нашим виджитом
self.view.set_buffer(self.buffer)
self.box.add(self.view)
self.button=Gtk.Button()
self.button.set_label("Ok")
self.box.add(self.button)
self.button.connect('clicked', lambda x: self.but_cli())
self.window.show_all()
Gtk.main()
def but_cli(self):
#Получаем "итер" начала буфера
self.start_iter=self.buffer.get_start_iter()
#И конца
self.end_iter=self.buffer.get_end_iter()
#Используем их по назначению, для получения текста из буфера
#Если я правильно понял "False" означает что мы опускаем непечатные символы
self.read=self.buffer.get_text(self.start_iter, self.end_iter, False)
#Единственный "set_" метод, где аргументов меньше чем в аналогичном "get_"
self.write=self.buffer.set_text("Записали")
#Мы получили текст и теперь вольны делать с ним что угодно, например вывести в консоль
print(self.read)
#PS:если вы хотите вывести его в другой TextView без изменений есть способ проще.
if __name__ == '__main__':
ex()