CompositeStyle ================= .. currentmodule:: axioma.render .. class:: CompositeStyle Композитный стиль, состоящий из одного или нескольких стилей. При отрисовке, содержащиеся внутри стили, последовательно друг за другом отрисовывают геометрический объект. Создание композитного стиля так-же созможно посредством :meth:`~axioma.mapinfo.MapBasicStyle.styleFromString` Унаследован от: :class:`~axioma.render.Style` .. py:method:: CompositeStyle() Конструктор .. py:method:: append(style) Добавляет стиль. Вначале производится отрисовка, используя стили, добавленные ранее :param style: Добавляемый стиль :type style: :class:`~axioma.render.Style` .. py:method:: replace(index, style) Заменяет существующий стиль по его индексу внутреннего хранения :param index: Индекс заменяемого элемента :type index: :class:`int` :param style: Новый стиль :type style: :class:`~axioma.render.Style` :return: True, если индекс существует и операция прошла успешно. В противном случае False :rtype: :class:`bool` .. py:method:: remove(index) Удаляет стиль по его индексу внутреннего хранения :param index: Индекс удаляемого элемента :type index: :class:`int` :return: True, если индекс существует и операция прошла успешно. В противном случае False :rtype: :class:`bool` .. py:method:: swap(index1, index2) Меняет местами два элемента по их индексу :param index1: Индекс первого заменяемого элемента :type index1: :class:`int` :param index2: Индекс второго заменяемого элемента :type index2: :class:`int` :return: True, если оба индекса существуют, они не равны и операция прошла успешно. В противном случае False :rtype: :class:`bool` .. py:method:: styles() Список хренимых стилей :rtype: :class:`list` [:class:`~axioma.render.Style`] .. py:method:: count() Количество внутренних стилей :rtype: :class:`int` .. py:method:: isEmpty() Существуют ли внутренние стили. Изначально после вызова конструктора значение True. :rtype: :class:`bool` Пример использования (линия последовательно рисуется тремя добавленными стилями): .. code-block:: python 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) # Рисуем линию