DrawableView - Базовый класс с поддержкой визуального редактирования геометрий
- class axipy.DrawableView
Базовые классы:
View
Базовый класс для визуализации геометрических данных.
Свойства:
Возможен ли откат на один шаг вперед.
Возможен ли откат на один шаг назад.
Есть ли изменения в окне.
Размер и положение окна.
Возвращает тип состояния окна.
Включает режим привязки координат при редактировании геометрии в окне карты или отчета.
Заголовок окна просмотра.
Виджет, соответствующий содержимому окна.
Методы:
close
()Закрывает окно.
offset
(dx, dy)Производит сдвиг окна карты или отчета.
redo
()Производит откат на один шаг вперед.
reset_parent
(parent)Сбрасывает окно контейнера для карты или таблицы просмотра, если он существует и закрывает его.
scale_with_center
(scale, center)Установка нового центра с заданным масштабированием.
show
([type])Показывает окно в соответствие с приведенным типом.
undo
()Производит откат на один шаг назад.
Сигналы:
Сигнал об изменении контента окна.
- close()
Закрывает окно.
Примечание
Если при закрытии окна выдается запрос о сохранении данных перед закрытием и необходимо изменить поведение, то это можно сделать через соответствующие типу окна настройки или же через свойство
axipy.CurrentSettings.SilentCloseWidget
- offset(dx: float, dy: float)
Производит сдвиг окна карты или отчета. Особенностью является то, что при этом сохраняется прежний центр (актуально для карты).
- Параметры:
dx – Смещение по горизонтали в координатах экрана (пикселях)
dy – Смещение по вертикали в координатах экрана (пикселях)
- redo()
Производит откат на один шаг вперед. При этом возвращается состояние до последней отмены.
- 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()
- scale_with_center(scale: float, center: Pnt)
Установка нового центра с заданным масштабированием.
- Параметры:
scale – Коэффициент масштабирования по отношению к текущему.
center – Устанавливаемый центр.
- show(type: int = SHOW_NORMAL)
Показывает окно в соответствие с приведенным типом.
Константа
Значение
Описание
SHOW_NORMAL
1
Обычный показ окна (по умолчанию).
SHOW_MINIMIZED
2
Показ окна в режиме минимизации.
SHOW_MAXIMIZED
3
Показ окна в режиме распахивания.
- property snap_mode: bool
Включает режим привязки координат при редактировании геометрии в окне карты или отчета.
- undo()
Производит откат на один шаг назад.