# Legend - Легенда слоя

class axipy.Legend

  Легенда слоя. Позволяет получить информацию об условных обозначениях на слое. Созданная легенда в дальнейшем может быть помещена на лист отчета `axipy.Report` как `axipy.LegendReportItem` или же расположена в отдельном окне легенд слоев для карты `axipy.Map`.

  Параметры:

    lay – Слой, для которого создается легенда.

  Пример создания легенды.

      range1 = RangeThematicLayer("Население")
      world.thematic.add(range1)
      # Легенда для тематического слоя
      legend = Legend(range1)
      legend.columns = 2
      # Зададим стиль заднего фона и окантовки
      legend.border_style = LineStyle(3, Qt.red)
      legend.fill_style = PolygonStyle(49, Qt.yellow)
      # Изменим описание для первого элемента
      item = legend.items[0]
      item.title = 'Описание'
      legend.items[0] = item
      # Заголовок легенды
      legend.caption = 'Легенда для слоя'
      # Стиль заголовка
      legend.style_caption = Style.from_mapinfo("Font (\"Arial\", 0, 9, 255)")
      # Просмотр всех стилей легенды
      for it in legend.items:
          print(it.title, it.visible, it.style.to_mapinfo())
      # Изменение позиции элемента легенды
      legend.items.move(0, 1)
      # Отрисуем легенду в контексте вместе с картой
      image = QImage(800, 600, QImage.Format_ARGB32_Premultiplied)
      image.fill(Qt.white)
      painter = QPainter(image)
      context = Context(painter)
      legend.position = (100, 50)
      legend.draw(context)
      '''
      >>> Описание True Pen (1, 2, 8421504) Brush (2, 16776960)
      >>> 55419-166640 True Pen (1, 2, 8421504) Brush (2, 12582656)
      >>> 166640-631500 True Pen (1, 2, 8421504) Brush (2, 8453888)
      ...
      '''

  Свойства:

  `border_style` | Стиль используемой окантовки.
  `caption` | Заголовок легенды.
  `columns` | Количество колонок в легенде.
  `fill_style` | Стиль заливки заднего фона.
  `items` | Перечень стилей легенды.
  `position` | Положение легенды в контексте рисования.
  `style_caption` | Стиль заголовка легенды.
  `style_subcaption` | Стиль подзаголовка легенды.
  `style_text` | Стиль текстовых подписей.
  `subcaption` | Подзаголовок легенды.

  Методы:

  `draw`(context) | Рисует легенду в контексте.
  `refresh`() | Обновляет стили из источника.
  `to_image`(width, height) | Возвращает легенду в виде растра.

  property border_style: Style

    Стиль используемой окантовки.

    Отображается если has_border установлено в True.

  property caption: str

    Заголовок легенды.

    Стиль заголовка задается свойством `style_caption`

  property columns: int

    Количество колонок в легенде.

    По умолчанию 1.

  draw(context: Context)

    Рисует легенду в контексте.

    Легенду также можно отрисовать совместно с картой в одном контексте (см. `Map.draw()`).

    Параметры:

      context – Контекст рисования.

  property fill_style: Style

    Стиль заливки заднего фона.

  property items: ListLegendItems

    Перечень стилей легенды.

    Реализован в виде списка. Для изменения какого-либо параметра необходимо сначала получить элемент, затем поменять требуемое свойство, а затем измененный элемент переназначить.

  property position: Pnt

    Положение легенды в контексте рисования.

  refresh()

    Обновляет стили из источника.

  property style_caption: Style

    Стиль заголовка легенды.

  property style_subcaption: Style

    Стиль подзаголовка легенды.

  property style_text: Style

    Стиль текстовых подписей.

  property subcaption: str

    Подзаголовок легенды.

    Стиль заголовка задается свойством `style_subcaption`

  to_image(width: int, height: int) → QImage

    Возвращает легенду в виде растра.

    Параметры:

      - width – Ширина выходного растра.

      - height – Высота выходного растра.