CompositeStyle

class axioma.render.CompositeStyle

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

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

CompositeStyle()

Конструктор

append(style)

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

Параметры:style (Style) – Добавляемый стиль
replace(index, style)

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

Параметры:
  • index (int) – Индекс заменяемого элемента
  • style (Style) – Новый стиль
Результат:

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

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

bool

remove(index)

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

Параметры:index (int) – Индекс удаляемого элемента
Результат:True, если индекс существует и операция прошла успешно. В противном случае False
Тип результата:bool
swap(index1, index2)

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

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

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

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

bool

styles()

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

Тип результата:list [Style]
count()

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

Тип результата:int
isEmpty()

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

Тип результата: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) # Рисуем линию