CompositeStyle

class axioma.render.CompositeStyle

Композитный стиль, состоящий из одного или нескольких стилей. При отрисовке, содержащиеся внутри стили, последовательно друг за другом отрисовывают геометрический объект. Создание композитного стиля так-же возможно посредством styleFromString()

Унаследован от: Style

CompositeStyle()

Конструктор

append(style)

Добавляет стиль. Вначале производится отрисовка, используя стили, добавленные ранее

Параметры

style (Style) – Добавляемый стиль

count()

Количество внутренних стилей

Тип результата

int

isEmpty()

Существуют ли внутренние стили. Изначально после вызова конструктора значение True.

Тип результата

bool

remove(index)

Удаляет стиль по его индексу внутреннего хранения

Параметры

index (int) – Индекс удаляемого элемента

Результат

True, если индекс существует и операция прошла успешно. В противном случае False

Тип результата

bool

replace(index, style)

Заменяет существующий стиль по его индексу внутреннего хранения

Параметры
  • index (int) – Индекс заменяемого элемента

  • style (Style) – Новый стиль

Результат

True, если индекс существует и операция прошла успешно. В противном случае False

Тип результата

bool

styles()

Список хранимых стилей

Тип результата

list [Style]

swap(index1, index2)

Меняет местами два элемента по их индексу

Параметры
  • index1 (int) – Индекс первого заменяемого элемента

  • index2 (int) – Индекс второго заменяемого элемента

Результат

True, если оба индекса существуют, они не равны и операция прошла успешно. В противном случае False

Тип результата

bool

Пример использования (линия последовательно рисуется тремя добавленными стилями):

from axioma.mapinfo import *
from axioma.render import *

# Создаем стили-элементы
styleComp0 = MapBasicStyle().styleFromString("Pen (5,2,16711680)")
styleComp1 = MapBasicStyle().styleFromString("Pen (2,2,16776960)")
styleComp2 = MapBasicStyle().styleFromString("Pen (2,9,0)")
# Создаем сам композитный стиль
compositeStyle = CompositeStyle()
# Последовательно (как должны быть отрисованы) добавляем элементы в стиль
compositeStyle.append(styleComp0)
compositeStyle.append(styleComp1)
compositeStyle.append(styleComp2)
# Стиль можно создать из строки MapBasic, в которой стили разделены '|' или ';' (альтернатива предыдущим строкам)
#compositeStyle = MapBasicStyle().styleFromString("Pen (5,2,16711680)|Pen (2,2,16776960)|Pen (2,9,0)")
line = Line(cs_ne, QLineF(QPointF(400,100), QPointF(600,100)))
compositeStyle.draw(line, context) # Рисуем линию