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)
Свойства:
Перечень добавленных в окно легенд.
Размер и положение окна.
Возвращает тип состояния окна.
Заголовок окна просмотра.
Виджет, соответствующий содержимому окна.
Методы:
arrange
()Упорядочивает легенды с целью устранения наложений легенд друг на друга.
close
()Закрывает окно.
reset_parent
(parent)Сбрасывает окно контейнера для карты или таблицы просмотра, если он существует и закрывает его.
show
([type])Показывает окно в соответствие с приведенным типом.
- arrange()
Упорядочивает легенды с целью устранения наложений легенд друг на друга.
- close()
Закрывает окно.
Примечание
Если при закрытии окна выдается запрос о сохранении данных перед закрытием и необходимо изменить поведение, то это можно сделать через соответствующие типу окна настройки или же через свойство
axipy.CurrentSettings.SilentCloseWidget
- property legends: ListLegend
Перечень добавленных в окно легенд.
- 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()