ArrayStyle¶
-
class
axioma.render.ArrayStyle¶ Не рекомендуется, начиная с версии >2.0.2.
Ассоциативный контейнер стилей. Вне зависимости от общего количества элементов активен только один стиль массива. Отрисовка будет производиться с использованием именно этого активного стиля. В массивен не может быть меньше одного элемента. Смена активного элемента производится посредством метода
setActiveStyle()Унаследован от:
Style-
ArrayStyle(key, style)¶ Конструктор. Создает массив с единственным элементом. Этот элемент по умолчанию становится активным.
-
exist(key)¶ Проверка существования стиля с таким наименованием
-
keys()¶ Список всех наименований. Упорядочен в соответствии с их внутренним расположением.
-
remove(key)¶ Удаление стиля по его наименованию, если такой существует. Если удаляется активный стиль, то активным становится стиль, являющийся первым в списке. Список можно получить посредством метода
keys(). Невозможно удалить элемент массива, если он является единственным.
-
setActiveStyle(key)¶ Смена активного стиля на другой по его наименованию
-
setStyle(key, style)¶ Устанавливает новое значение стиля. Если стиль с таким наименованием уже присутствует в массиве, он заменяется, если нет, то добавляется в конец списка. После выполнения данного метода активный стиль не меняется. Изменение возможно только в том случае, если был изменено значение самого активного стиля
- Параметры
key (
str) – Наименование элемента массиваstyle (
Style) – Стиль элемента массива. Так-же допустимо использование сложных стилейCollectionStyle
-
Пример использования:
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) # Рисуем второй прямоугольник