LegendItemComponent¶
-
class
axioma.render.
LegendItemComponent
¶ Элемент легенды LegendItem для векторного слоя
-
LegendItemComponent
(style, description, objects=- 1)¶ Конструктор
-
LegendItemComponent
(other)¶ Копирующий конструктор
- Параметры
other (
LegendItemComponent
) – Исходный объект LegendItemComponent, на базе которого необходимо сделать копию.
-
description
()¶ Описание элемента. Если методе setDescriptionChanged установлено значение, отличное от None, показывается оно, в противном случае исходное.
- Результат
Строка с описанием
- Тип результата
-
fullDescription
()¶ Полное описание элемента. Если в конструкторе (или посредством метода setObjectCount) передано количество объектов со значением, отличающимся от -1, в описание включается и данное значение. В противном случае результат аналогичен методу description
- Результат
Строка с описанием
- Тип результата
-
setDescriptionChanged
(description)¶ Замена текстового описания. При этом исходное описание сохраняется. Используется, если есть необходимость изменить тестовую подпись с возможностью его сохранение при обновлении параметров элемента легенды.
- Параметры
description (
str
) – Описание
-
LegendItem¶
-
class
axioma.render.
LegendItem
¶ Легенда для векторного слоя.
От него наследуются:
FeatureLegendItem
,ThematicLegendItem
-
LegendItem
(caption, parent=None)¶ Конструктор
-
LegendItem
(caption, overrideComponentsб parent=None)¶ Конструктор
- Параметры
caption (
str
) – Наименование (заголовок) легенды.overrideComponents (
list
[LegendItemComponent
]) – Список элементов легендыparent (
QObject
) – Владелец элемента легенды. При удалении владельца так же удаляется и сам элемент
-
LegendItem
(other)¶ Копирующий конструктор
- Параметры
other (
LegendItem
) – Исходный объект, на базе которого создается новый.
-
aboutToBeDestroyed
()¶ [signal] Сигнал, который срабатывает при удалении легенды
-
basePoint
()¶ Базовая точка, относительно которой производится отрисовка элемента легенды
- Результат
Точка
- Тип результата
-
baseSizeStyleElement
()¶ Базовый размер элемента. Остальные параметры масштабируются относительно этого размера
- Результат
Размер
- Тип результата
-
borderStyle
()¶ Стиль окантовки. Если не указан (равен None), окантовка не рисуется. По умолчанию окантовка отсутствует
- Результат
Стиль
- Тип результата
-
clone
()¶ Делает копию текущего объекта
- Результат
Копия объекта
- Тип результата
-
draw
(context)¶ Отрисовка элемента легенды в заданном контексте
- Параметры
context (
Context
) – Контекст, в котором будет отрисован элемент легенды
-
draw
(context, pos)¶ Отрисовка элемента легенды в заданном контексте
-
drawSelected
(context)¶ Отрисовка выделения элемента легенды в заданном контексте
- Параметры
context (
Context
) – Контекст, в котором будет отрисовано выделение элемента легенды
-
drawSelected
(context, pos)¶ Отрисовка выделения элемента легенды в заданном контексте
-
moveItem
(oldPos, newPos)¶ Перемещение (смена позиции) элемента легенды
-
numberColumns
()¶ Количество колонок, на которые разбиваются элементы легенды. По умолчанию установлено значение 1.
- Результат
Количество колонок.
- Тип результата
-
rect
()¶ Прямоугольник, который занимает данный элемент легенды
- Результат
Ограничивающий прямоугольник
- Тип результата
-
rect
(pos)¶ Прямоугольник, который занимает данный элемент легенды с указанием начальной точки
-
refreshStyleItems
()¶ Обновление значений элементов легенды
-
setBaseSizeStyleElement
(value)¶ Переопределение базового размера элемента
- Параметры
value (
QSize
) – размер
-
setBorderStyle
(style)¶ Задание стиля окантовки
- Параметры
style (
LineStringStyle
) – Стиль. Значение None убирает окантовку
-
setCaption
(value)¶ Установка нового значения заголовка элемента легенды
- Параметры
value (
str
) – Новое значения заголовка
-
setDescriptionItem
(index, value)¶ Изменение описания элемента легенды
-
setSubCaption
(value)¶ Установка нового значения подзаголовка элемента легенды
- Параметры
value (
str
) – Новое значения подзаголовка
-
setTextRender
(value)¶ Установка нового значения отрисовщика элемента
- Параметры
value (
TextRenderer
) – Новое значение
-
setTextRenderCaption
(value)¶ Установка нового значения отрисовщика заголовка легенды
- Параметры
value (
TextRenderer
) – Новое значение
-
setTextRenderSubCaption
(value)¶ Установка нового значения отрисовщика подзаголовка легенды
- Параметры
value (
TextRenderer
) – Новое значение
-
setVisibledItem
(index, value)¶ Управление видимостью элемента легенды.
-
styleItemAt
(index)¶ Возвращает элемент по его индексу
- Параметры
index (
int
) – Индекс- Результат
Элемент
- Тип результата
-
styleItems
()¶ Список элементов легенды
- Результат
Список
- Тип результата
-
textRender
()¶ Отрисовщик элементов легенды
- Результат
Установленное значение
- Тип результата
-
textRenderCaption
()¶ Отрисовщик заголовка легенды
- Результат
Установленное значение
- Тип результата
-
textRenderSubCaption
()¶ Отрисовщик подзаголовка легенды
- Результат
Установленное значение
- Тип результата
-
transform
(transform)¶ Преобразование (трансформирование) легенды
- Параметры
transform (
QTransform
) – Матрица преобразования
-
updateComponent
(index, component)¶ Замена существующего элемента легенды новым значением
- Параметры
index (
int
) – Индексcomponent (
LegendItemComponent
) – Замещающий элемент
-
Пример использования:
# Импорт from axioma.render import * from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * class StyleDialog(QDialog): def __init__(self, parent, layers): QDialog.__init__(self, parent) self.setGeometry(200, 200, 600, 400) self.setWindowTitle('Пример легенды') self.layers = layers # Перечень слоев, для которых будет строиться легенда self.image = QImage() # временный растр, куда производится отрисовка легенды # Создание контекста def createContext(self, painter): deviceRect = sceneRect = QRectF(0,0,100,100) viewport = Viewport (deviceRect,sceneRect) return Context(painter, viewport) # Отрисовка элемента легенды def drawElement(self, fi, context, pos): r = fi.rect() fi.draw(context, pos) pos.setY(pos.y() + 10 + r.height()) return pos def renderLegend(self): # Рисуем в растр self.image = QImage(self.size(), QImage.Format_ARGB32_Premultiplied) painter = QPainter(self.image) painter.fillRect(self.image.rect(), Qt.white) context = self.createContext(painter) pos = QPoint(10, 10) for lay in self.layers: if isinstance(lay, HasStyles): # Если есть легенда fi = FeatureLegendItem(lay, lay.name(), self) pos = self.drawElement(fi, context, pos) if isinstance(lay, LayerWithThematic): thematics = lay.createLegendsList() # Перечень легенд для тематики, если таковые имеются for them in thematics: pos = self.drawElement(them, context, pos) def paintEvent(self, event): try: painter = QPainter(self) if not self.image.isNull(): painter.drawImage(0,0, self.image) except Exception as ex: print(ex) def resizeEvent(self, event): self.renderLegend() # Текущая карта mapview = axioma.app.mainWindow.mapViewManager().currentMapView() if mapview is not None: layers = mapview.map().flatLayerList() # Список слоев карты dlg = StyleDialog(axioma.app.mainWindow, layers) dlg.exec() else: QMessageBox.information(axioma.app.mainWindow, QObject().tr("Информация"), QObject().tr("Текущая карта не найдена"))