StyleService

class axioma.render.StyleService

Служба, предоставляющая установленные по умолчанию стили геометрических объектов.

Получайте экземпляр этого класса, используя метод axioma.render.Render.styleService()

defaultModifiedObjectStyle()

Стиль для объектов, находящихся в процессе модификации

Результат:Стиль
Тип результата:CollectionStyle
defaultOverrideStyle()

Текущий стиль для единообразного отображения слоя

Результат:Стиль
Тип результата:CollectionStyle
defaultSelectionStyle()

Стиль для выделенных геометрических объектов в окне карты или отчета

Результат:Стиль
Тип результата:CollectionStyle
modifiedObjectStyleProvider()

Хранит текущий стиль для объектов, находящихся в режиме модификации, доступный в рамках текущей сессии

Результат:Провайдер стилей
Тип результата:StyleCollectionProvider
modifiedObjectStyleProvider()

Хранит текущий стиль для новых объектов, доступный в рамках текущей сессии

Результат:Провайдер стилей
Тип результата:StyleCollectionProvider
newObjectStyle()

Сохраненный стиль для новых объектов. Этот стиль используется как стиль для вновь создаваемых объектов на в окне карты или отчета, а также может быть использован для создания геометрических объектов программным способом

Результат:Стиль
Тип результата:CollectionStyle
selectionStyleProvider()

Хранит текущий стиль для выбранных объектов, доступный в рамках текущей сессии

Результат:Провайдер стилей
Тип результата:StyleCollectionProvider

Пример работы с менеджером стилей. Рассмотрим получение и замену стиля для нового объекта на примере точечного объекта.

import axioma.core.geometry
from axioma.mapinfo import MapBasicStyle
from axioma.render import *
from PyQt5.QtCore import  Qt
from PyQt5.QtGui import QColor

# Запрашиваем текущий стиль для новых объектов
object_style=axioma.app.render.styleService().newObjectStyle()

# Вывод (для визуального) в формате MapInfo MapBasic
print(MapBasicStyle().stringFromStyle(object_style))

# Создадим стиль для точечных объектов, который мы хотим использовать для новых объектов
point_style=MapBasicStyle().styleFromString("Symbol (36,%d, 24)"  % (QColor(Qt.blue).rgb() - 0xFF000000 ))
print(MapBasicStyle().stringFromStyle(point_style))

# Переопределяем стиль. Данный стиль может быть использоваться для создания новых объектов. Переопределенный стиль хранится до концасессии.
# Для постоянного переопределения необходимо произвести можификацию через настройти.
object_style.setStyle(PointGeometryClass(), point_style)

# Вывод полученного результата. Так-же данный стиль можно посмотреть в настройках аксиомы
print(MapBasicStyle().stringFromStyle(axioma.app.render.styleService().newObjectStyle()))

# Запрос стиля для точечного объекта
point=axioma.core.geometry.Point(None, 0, 0) # Требуемый объект
point_style=axioma.app.render.styleService().newObjectStyle().style(point)# Запрос поддерживаемого стиля для геометрии
print(MapBasicStyle().stringFromStyle(point_style))

# Запрос стиля для полигонального объекта не по геометрическому объекту, а по его типу
polygon_style=axioma.app.render.styleService().newObjectStyle().style(PolygonalGeometryClass())
print(MapBasicStyle().stringFromStyle(polygon_style))