axioma.render.
ArrayStyle
¶Ассоциативный контейнер стилей. Вне зависимости от общего количества элементов активен только один стиль массива. Отрисовка будет производиться с использованиеи именно этого активного стиля. В массивен не может быть меньше одного элемента. Смена активного элемента производится посредством метода setActiveStyle()
Унаследован от: Style
ArrayStyle
(key, style)¶Конструктор. Создает массив с единственным элементом. Этот элемент по-умолчанию становится активным.
Параметры:
setStyle
(key, style)¶Устанавливает новое значение стиля. Если стиль с таким наименованием уже присутствует в массиве, он заменяется, если нет, то добавляется в конец списка. После выполнения данного метода активный стиль не меняется. Изменение возможно только в том случае, если был изменено хначение самого активного стиля
Параметры:
- key (
str
) – Наименование элемента массива- style (
Style
) – Стиль элемента массива. Так-же допустимо использование сложных стилейCollectionStyle
remove
(key)¶Удаление стиля по его наименованию, если такой существует. Если удаляется активный стиль, то активным становится стиль, авляющийся первым в списке. Список можно получить посредством метода
keys()
. Невозможно удалить элемент массива, если он является единственным.
Параметры: key ( str
) – Наименование элемента массиваРезультат: True, если удаление произведено успешно. В противном случае False Тип результата: bool
exist
(key)¶Проверка существования стиля с таким наименованием
Параметры: key ( str
) – Наименование проверяемого элемента массиваРезультат: True, если такой существует. В противном случае False Тип результата: bool
setActiveStyle
(key)¶Смена активного стиля на другой по его наименованию
Параметры: key ( str
) – Наименование элемента массиваРезультат: True, если операция успешна. В противном случае False, если такого наименования не найдено Тип результата: bool
Пример использования:
from axioma.mapinfo import * from axioma.render import * # Создаем предварительно стили, которые поместим в массив style1 = MapBasicStyle().styleFromString("Pen (2,2,0) Brush (2,%d)" % (colorToMapbasic(Qt.red))) style2 = MapBasicStyle().styleFromString("Pen (2,2,0) Brush (2,%d)" % (colorToMapbasic(Qt.blue))) arrayStyle = ArrayStyle('red', style1) # Создаем массив с одним элементом arrayStyle.setStyle('blue', style2) # Добавляем еще один стиль. Установлено 2 стиля с активным red rectangle1 = Rectangle(cs_ne, QRectF(500, 300, 50,50)) arrayStyle.draw(rectangle1, context) # Рисуем первый прямоугольник arrayStyle.setActiveStyle('blue') # Меняем активный стиль на значение blue rectangle2 = Rectangle(cs_ne, QRectF(500, 200, 50,50)) arrayStyle.draw(rectangle2, context) # Рисуем второй прямоугольник