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) # Рисуем второй прямоугольник