Текстовый фреймворк (gtk.TextView)

Содержание

13.1. Обзор фреймворка
13.2. Представление текста
13.3. Текстовый буфер (gtk.TextBuffer)
13.3.1. Информация о состоянии буфера
13.3.2. Создание текстовых каналов (gtk.TextIter)
13.3.3. Вставка, правка и удаление текста
13.3.4. Немного о маркировке текста (gtk.TextMark)
13.3.5. Создание и применение текстовых признаков (gtk.TextTag)
13.3.6. Вставка изображений и других виджетов
13.4. Текстовые каналы (gtk.TextIter)
13.4.1. Атрибуты канала
13.4.2. Атрибуты текста в канале
13.4.3. Копирование канала
13.4.4. Изменение текста и объектов
13.4.5. Проверка состояния на канале
13.4.6. Проверка расположения в тексте
13.4.7. Перемещение по тексту
13.4.8. Перемещение в определённое место
13.4.9. Поиск в тексте
13.5. Маркировка текста (gtk.TextMark)
13.6. Признаки текста и таблиц
13.6.1. Текстовые признаки
13.6.2. Таблицы признаки таблиц
13.7. Пример TextView

13.1. Обзор фреймворка

Виджеты TextView и связанные с ними объекты (TextBuffer, TextMark, TextIter, TextTag и TextTagTable) представляют мощный фреймворк для многострочного редактирования текста.

TextBuffer (см. Раздел 13.3, “Текстовый буфер”) содержит текст, отображаемый одним или несколькими виджетами TextView.

В GTK+ 2.0, текст всегда кодируется в UTF-8, это означает, что один символ может быть закодирован несколькими байтами. Поэтому используя TextBuffer, нужно понимать разницу между числом символов и числом байт.

TextIter (канал) предоставляет позицию между двумя символами в TextBuffer. TextIter действителен, пока набор символов в TextBuffer не изменяется, т.е. всегда, когда символы вставляются или удаляются из TextBuffer, то все TextIter становятся недействительными. TextIter это основной способ указывать позицию в при работе с текстом в TextBuffer.

TextMark (метка) предоставляет сохранение позиции в TextBuffer, несмотря на изменения буфера. Такие метки похожи на TextIter (см. Раздел 13.4, “Текстовые каналы”) в том, что они отображают позицию между двумя символами из TextBuffer, но если текст, окружающий метку удаляется, то она остаётся там где был текст. Таким же образом при вставке текста на метку, метка будет находиться слева или справа от вставляемого текста, в зависимости от притяжения метки – правое притяжение заставит метку быть справа от вводимого текста, а левое слева. TextMark‘и (см Раздел 13.5, “Метки в тексте”) могут быть именованными или анонимными. Каждый TextBuffer имеет две предустановленные метки, названные insert и selection_bound. Они указывают на точку ввода символов и границу выделения (выделенный текст находится между метками insert и selection_bound).

TextTag (см Раздел 13.6.1, “Текстовые признаки”) это объекты, которые определяют набор атрибутов, применяемых к тексту в TextBuffer. Каждый TextBuffer имеет TextTagTable (см. Раздел 13.6.2, “Таблицы текстовых признаков”), который содержит признаки, применимые к этому буферу. TextTagTable может быть разделен с TextBuffer. TextTag обычно используются для того чтобы изменить внешний вид отрезка текста, но также может быть использован для защиты этого отрезка от редактирования.


Предыдущая страница На уровень выше  Следующая страница
12.2. Методы рисования Оглавление  13.2. Представление текста

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>