axioma.render.
CompositeStyle
¶Композитный стиль, состоящий из одного или нескольких стилей. При отрисовке, содержащиеся внутри стили, последовательно друг за другом отрисовывают геометрический объект. Создание композитного стиля так-же созможно посредством styleFromString()
Унаследован от: Style
CompositeStyle
()¶Конструктор
append
(style)¶Добавляет стиль. Вначале производится отрисовка, используя стили, добавленные ранее
Параметры: style ( Style
) – Добавляемый стиль
replace
(index, style)¶Заменяет существующий стиль по его индексу внутреннего хранения
Параметры: Результат: True, если индекс существует и операция прошла успешно. В противном случае False
Тип результата:
remove
(index)¶Удаляет стиль по его индексу внутреннего хранения
Параметры: index ( int
) – Индекс удаляемого элементаРезультат: True, если индекс существует и операция прошла успешно. В противном случае False Тип результата: bool
swap
(index1, index2)¶Меняет местами два элемента по их индексу
Параметры: Результат: True, если оба индекса существуют, они не равны и операция прошла успешно. В противном случае False
Тип результата:
Пример использования (линия последовательно рисуется тремя добавленными стилями):
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) # Рисуем линию