Найти - Пользователи
Полная версия: Помощь с Gtk.TextView
Начало » GUI » Помощь с Gtk.TextView
1
Atterratio
Использую Python 3.2, PyGObject 2.28, пишу без использования Gtk.Builder сколько ни гуглил, ни читал мануалы, не смог понять как юзать Gtk.TextView, в демках PyGObject не могу найти что то. Приведите пожалуйста код записи и чтения произвольной строки.
Atterratio
Два дня после удара пинал МПХ-и и сегодня с нов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()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB