# LegendView - Окно просмотра легенд карты

class axipy.LegendView

  Базовые классы: `View`

  Легенда для карты. Для создания экземпляра необходимо использовать `axipy.ViewManager.create_legendview()` через экземпляр view_manager. В качестве параметра передается открытое ранее окно с картой:

      legendView = view_manager.create_legendview(map_view)

  Список легенд доступен через свойство `legends`:

      for legend in legendView.legends:
         print(legend.caption)

  Состав может меняться посредством вызова соответствующих методов свойства `legends`.

  Добавление легенды для слоя карты:

      legend = Legend(map_view.map.layers[0])
      legend.caption = 'Легенда слоя'
      legendView.legends.append(legend)
      legendView.arrange()

  Доступ к элементу по индексу. Поменяем описание четвертого оформления у первой легенды `axipy.Legend` окна:

      legend = legendView.legends[1]
      item = legend.items[3]
      item.title = 'Описание'
      legend.items[3] = item

  Удаление первой легенды из окна:

      legendView.legends.remove(0)

  Свойства:

  `legends` | Перечень добавленных в окно легенд.
  `position` | Размер и положение окна.
  `show_type` | Возвращает тип состояния окна.
  `title` | Заголовок окна просмотра.
  `widget` | Виджет, соответствующий содержимому окна.

  Методы:

  `arrange`() | Упорядочивает легенды с целью устранения наложений легенд друг на друга.
  `close`() | Закрывает окно.
  `reset_parent`(parent) | Сбрасывает окно контейнера для карты или таблицы просмотра, если он существует и закрывает его.
  `show`([type]) | Показывает окно в соответствие с приведенным типом.

  Специальные методы:

  `__eq__`(other) | Оператор равенства (==).
  `__repr__`() | Официальное строковое представление объекта при вызове `repr()`.
  `__str__`() | Неформальное строковое представление объекта при вызове `str` или `print()`.

  __eq__(other: object) → bool

    Оператор равенства (==).

  __repr__() → str

    Официальное строковое представление объекта при вызове `repr()`.

  __str__() → str

    Неформальное строковое представление объекта при вызове `str` или `print()`.

  arrange()

    Упорядочивает легенды с целью устранения наложений легенд друг на друга.

  close()

    Закрывает окно.

    Примечание

    Если при закрытии окна выдается запрос о сохранении данных перед закрытием и необходимо изменить поведение, то это можно сделать через соответствующие типу окна настройки или же через свойство `axipy.CurrentSettings.SilentCloseWidget`

  property legends: ListLegend

    Перечень добавленных в окно легенд.

  property position: QRect

    Размер и положение окна.

  reset_parent(parent: QWidget)

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

    Параметры:

      parent – Окно - новый родитель

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

        table = provider_manager.openfile('world.tab')
        layer = Layer.create(table)
        m = Map([layer])
        view = view_manager.create_mapview(m)

        # Диалог, в который будет встраиваться
        class MyDialog(QDialog):

            def __init__(self, parent ):
                super().__init__(parent)
                # Инициализируем менеджер компоновки
                self.layout = QGridLayout()
                self.setLayout(self.layout)

            def set_mapview(self, view):
                # Устанавливаем окно карты как контент данного диалога
                view.reset_parent(self)
                self.layout.addWidget(view.widget)
                view.show()

        dialog = MyDialog(view_manager.global_parent)
        dialog.resize(500,300)
        dialog.set_mapview(view)
        dialog.show()

  show(type: int = SHOW_NORMAL)

    Показывает окно в соответствие с приведенным типом.

    Допустимые значения:
    Константа | Значение | Описание
    --- | --- | ---
    SHOW_NORMAL | 1 | Обычный показ окна (по умолчанию).
    SHOW_MINIMIZED | 2 | Показ окна в режиме минимизации.
    SHOW_MAXIMIZED | 3 | Показ окна в режиме распахивания.

  property show_type: int

    Возвращает тип состояния окна.

    Подробнее см. `show()`

  property title: str

    Заголовок окна просмотра.

  property widget: QWidget

    Виджет, соответствующий содержимому окна.

    Результат:

      Qt5 виджет содержимого.