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