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.render.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])

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

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 ):
        super().__init__()
        # Инициализируем менеджер компоновки
        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()
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 виджет содержимого.