ArrayStyle

class axioma.render.ArrayStyle

Ассоциативный контейнер стилей. Вне зависимости от общего количества элементов активен только один стиль массива. Отрисовка будет производиться с использованиеи именно этого активного стиля. В массивен не может быть меньше одного элемента. Смена активного элемента производится посредством метода setActiveStyle()

Унаследован от: Style

ArrayStyle(key, style)

Конструктор. Создает массив с единственным элементом. Этот элемент по-умолчанию становится активным.

Параметры:
  • key (str) – Наименование первого элемента массива
  • style (Style) – Стиль первого элемента массива
setStyle(key, style)

Устанавливает новое значение стиля. Если стиль с таким наименованием уже присутствует в массиве, он заменяется, если нет, то добавляется в конец списка. После выполнения данного метода активный стиль не меняется. Изменение возможно только в том случае, если был изменено хначение самого активного стиля

Параметры:
  • key (str) – Наименование элемента массива
  • style (Style) – Стиль элемента массива. Так-же допустимо использование сложных стилей CollectionStyle
remove(key)

Удаление стиля по его наименованию, если такой существует. Если удаляется активный стиль, то активным становится стиль, авляющийся первым в списке. Список можно получить посредством метода keys(). Невозможно удалить элемент массива, если он является единственным.

Параметры:key (str) – Наименование элемента массива
Результат:True, если удаление произведено успешно. В противном случае False
Тип результата:bool
exist(key)

Проверка существования стиля с таким наименованием

Параметры:key (str) – Наименование проверяемого элемента массива
Результат:True, если такой существует. В противном случае False
Тип результата:bool
count()

Количество элеменов

Тип результата:int
activeKey()

Возвращает наименование активного элемента

Тип результата:str
activeStyle()

Возвращает активный стиль

Тип результата:Style
setActiveStyle(key)

Смена активного стиля на другой по его наименованию

Параметры:key (str) – Наименование элемента массива
Результат:True, если операция успешна. В противном случае False, если такого наименования не найдено
Тип результата:bool
keys()

Список всех наименований. Упорядочен в соответствии с их внутренним расположением.

Тип результата:list [ str ]
style(key)

Возвращает стиль по его наименованию.

Параметры:key (str) – Наименование элемента массива
Тип результата:Style

Пример использования:

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