Признаки текста и таблиц

TextTag определяют атрибуты которые применяются к отрывкам текста в текстовом буфере. Каждый TextBuffer имеет TextTagTable, которая содержит TextTag‘и, которые, в свою очередь, могут быть применены в буфере. TextTagTable может быть использована с более чем одним TextBuffer для того, чтобы представить однородные текстовые стили.

13.6.1. Текстовые признаки

TextTag могут иметь имя или быть анонимными. TextTag создаётся с помощью функции:

  tag = gtk.TextTag(name=None)

Если name не указано или None, то tag будет анонимным. Также TextTag может быть создан с помощью метода TextBuffer.create_tag(), который также позволяет указывать атрибуты для tag, и добавлять их в таблицу (см. Раздел 13.3, “Текстовый буфер”).

Атрибуты, которые могут содержаться в TextTag:

name Чтение / Запись Имя признака. None если анонимный
background Запись Цвет фона как строка
foreground Запись Цвет переднего плана как строка
background-gdk Чтение / Запись Цвет фона как GdkColor
foreground-gdk Чтение / Запись Цвет переднего плана как GdkColor
background-stipple Чтение / Запись Bitmap для использования маской для фона
foreground-stipple Чтение / Запись Bitmap для использования маской для переднего плана
font Чтение / Запись Шрифт в формате строки, например “Sans Italic 12″
font-desc Чтение / Запись Шрифт в формате PangoFontDescription
family Чтение / Запись Семья шрифта (например Sans, Helvetica, Times, Monospace)
style Чтение / Запись Стиль шрифта в формате PangoStyle, например pango.STYLE_ITALIC
variant Чтение / Запись Модификация шрифта как PangoVariant, например pango.VARIANT_SMALL_CAPS
weight Чтение / Запись Начертание шрифта как целое, см. предустановленные значения в PangoWeight. Например, pango.WEIGHT_BOLD
stretch Чтение / Запись Ширина шрифта как PangoStretch. Например, pango.STRETCH_CONDENSED
size Чтение / Запись Размер шрифта в Pango Unit
size-points Чтение / Запись Размер шрифта в пунктах
scale Чтение / Запись Размер шрифта, как масштабирование относительно стандартного размера. Это свойство приспосабливается к изменениям темы, поэтому рекомендуется. Pango предустанавливает несколько таких, как, например, pango.SCALE_X_LARGE
pixels-above-lines Чтение / Запись Отступ над абзацем
pixels-below-lines Чтение / Запись Отступ под абзацем
pixels-inside-wrap Чтение / Запись Отступ между перенесёнными строками внутри абзаца
editable Чтение / Запись Редактируемость текста пользователем
wrap-mode Чтение / Запись Не переносить строки, переносить по словам, или по символам
justification Чтение / Запись Выравнивание по левому, правому краю или по центру
direction Чтение / Запись Направление текста. Т.е. справа-налево или слева-направо
left-margin Чтение / Запись Ширина левого поля в пикселях
indent Чтение / Запись Размер красной строки в пикселях
strikethrough Чтение / Запись Перечёркивание текста
right-margin Чтение / Запись Ширина правого поля в пикселях
underline Чтение / Запись Стиль подчёркивания текста
rise Чтение / Запись Сдвиг текста относительно базовой линии в пикселях
background-full-height Чтение / Запись Выбирает, заполняет ли фон всю высоту строки, или только высоту символов
language Чтение / Запись Язык текста по ISO. Pango может использовать это при отображении текста. Если вам не понятен тот параметр, то вероятно он вам не нужен.
tabs Чтение / Запись Определение табуляции.
invisible Чтение / Запись Позволяет прятать текст. Не реализовано в GTK+ 2.0

Атрибуты могут быть изменены с помощью метода:

  tag.set_property(name, value)

Где name это строка содержащая имя свойства, а value это значение свойства.

Похожим образом, атрибуты могут быть получены с помощью метода:

  value = tag.get_property(name)

Пока признаку не присвоено значение, то используется его значение по умолчанию. Существует набор логических свойств, которые показывают, был ли изменён признак:

background-set Чтение / Запись
foreground-set Чтение / Запись
background-stipple-set Чтение / Запись
foreground-stipple-set Чтение / Запись
family-set Чтение / Запись
style-set Чтение / Запись
variant-set Чтение / Запись
weight-set Чтение / Запись
stretch-set Чтение / Запись
size-set Чтение / Запись
scale-set Чтение / Запись
pixels-above-lines-set Чтение / Запись
pixels-below-lines-set Чтение / Запись
pixels-inside-wrap-set Чтение / Запись
editable-set Чтение / Запись
wrap-mode-set Чтение / Запись
justification-set Чтение / Запись
direction-set Чтение / Запись
left-margin-set Чтение / Запись
indent-set Чтение / Запись
strikethrough-set Чтение / Запись
right-margin-set Чтение / Запись
underline-set Чтение / Запись
rise-set Чтение / Запись
background-full-height-set Чтение / Запись
language-set Чтение / Запись
tabs-set Чтение / Запись
invisible-set Чтение / Запись

Для получения атрибута из признака, сначала проверьте, изменялся ли он. Например, для получения правильного значения выравнивания, можно сделать что-то вроде этого:

  if tag.get_property("justification-set"):
	justification = tag.get_property("justification")

Приоритет признаков по умолчанию зависит от порядка добавления признаков в таблицу. Приоритет может быть получен с помощью метода:

  priority = tag.get_priority()

  tag.set_priority(priority)

Приоритет признака может быть между 0 и размером таблицы признаков – 1.

13.6.2. Текстовые признаки таблиц

TextTagTable по умолчанию создаётся вместе с TextBufferTextTagTable также может быть создана с помощью функции:

  table = gtk.TextTagTable()

TextTag может быть добавлен на TextTagTable с помощью метода:

  table.add(tag)

tag должен отсутствовать в таблице и его имя не должно совпадать с именем другого признака таблицы.

Вы можете найти TextTag в TextTagTable используя метод:

  tag = table.lookup(name)

Этот метод возвращает tag с заданным именем из таблицы или None, если признак с именем name не найден .

TextTag может быть удалён из TextTagTable с помощью метода:

  table.remove(tag)

Размер TextTagTable может быть получен с помощью метода:

  size = table.get_size()

Предыдущая страница На уровень выше  Следующая страница
13.5. Маркировка текста (gtk.TextMark) Оглавление  13.7. Пример TextView

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

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

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