MapTool - Инструмент окна карты¶
-
class
axipy.gui.MapTool¶ Инструмент окна карты.
При создании своего инструмента новый инструмент наследуется от этого класса, и переопределяет необходимые обработчики событий.
-
enable_on¶ Идентификатор наблюдателя для определения доступности инструмента. По умолчанию отсутствует.
- Type
Union[str, DefaultKeys]
Пример:
MyTool(MapTool): def mousePressEvent(self, event): print('mouse pressed') return self.PassEvent
См.также
-
deactivate()¶ Выполняет действия непосредственно перед выключением инструмента и перед его удалением.
Переопределите этот метод, чтобы задать свои действия.
-
get_select_rect(device, size=3)¶ Возвращает прямоугольник в координатах карты для точки на экране.
Удобно для использования при поиске объектов.
- Параметры
- Тип результата
- Результат
Прямоугольник в координатах карты.
Пример:
device_point = event.pos() bbox = self.get_select_rect(device_point, 30) features = table.items(bbox=bbox)
-
handleEvent(event)¶ Первичный обработчик всех событий инструмента.
Если событие не блокируется этим обработчиком, то оно будет передано дальше в соответствующий специализированный обработчик
mousePressEvent(),keyReleaseEvent()и прочие в зависимости от типа.- Параметры
event (
QEvent) – Событие.- Тип результата
- Результат
BlockEvent, чтобы блокировать дальнейшую обработку события.
-
is_snapped()¶ Проверяет, сработала ли привязка к элементам карты или отчета для текущего положения указателя мыши.
См.также
- Тип результата
-
keyPressEvent(event)¶ Обрабатывает событие нажатия клавиши клавиатуры.
-
keyReleaseEvent(event)¶ Обрабатывает событие отпускания клавиши клавиатуры.
-
mouseDoubleClickEvent(event)¶ Обрабатывает событие двойного клика мыши.
- Параметры
event (
QMouseEvent) – Событие двойного клика мыши.- Тип результата
- Результат
PassEvent, чтобы пропустить событие дальше по цепочке обработчиков.NoneилиBlockEvent, чтобы блокировать дальнейшую обработку события.
-
mouseMoveEvent(event)¶ Обрабатывает событие перемещения мыши.
- Параметры
event (
QMouseEvent) – Событие перемещения мыши.- Тип результата
- Результат
PassEventилиNone, чтобы пропустить событие дальше по цепочке обработчиков.BlockEvent, чтобы блокировать дальнейшую обработку события.
-
mousePressEvent(event)¶ Обрабатывает событие нажатия клавиши мыши.
- Параметры
event (
QMouseEvent) – Событие нажатия клавиши мыши.- Тип результата
- Результат
PassEvent, чтобы пропустить событие дальше по цепочке обработчиков.NoneилиBlockEvent, чтобы блокировать дальнейшую обработку события.
-
mouseReleaseEvent(event)¶ Обрабатывает событие отпускания клавиши мыши.
- Параметры
event (
QMouseEvent) – Событие отпускания клавиши мыши.- Тип результата
- Результат
PassEvent, чтобы пропустить событие дальше по цепочке обработчиков.NoneилиBlockEvent, чтобы блокировать дальнейшую обработку события.
-
paintEvent(event, painter)¶ Обрабатывает событие отрисовки.
- Параметры
event (
QPaintEvent) – Событие отрисовки.painter (
QPainter) – QPainter для рисования поверх виджета
-
redraw()¶ Перерисовывает окно карты.
Создает событие
PySide2.QtGui.QPaintEventи помещает его в очередь обработки событий. АналогичноPySide2.QtWidgets.QWidget.update().
-
static
reset()¶ Переключает текущий инструмент на инструмент по умолчанию.
Обычно инструментом по умолчанию является Выбор.
-
snap(default_value=None)¶ Возвращает исправленные координаты, если сработала привязка к элементам в единицах измерения карты или отчета.
Возвращает значение по умолчанию, если не сработала привязка к элементам карты или отчета.
Пример:
point = self.to_scene(event.pos()) current_point = self.snap(point)
См.также
-
snap_device(default_value=None)¶ Возвращает исправленные координаты, если сработала привязка к элементам в единицах измерения окна карты (виджета).
Возвращает значение по умолчанию, если не сработала привязка к элементам карты или отчета.
Пример:
device_point = event.pos() current_device_point = self.snap_device(device_point)
См.также
-
to_device(scene)¶ Переводит точки из координат на карте в координаты окна(пиксели).
-
to_scene(device)¶ Переводит точки из координат окна(пикселей) в координаты на карте.
-
wheelEvent(event)¶ Обрабатывает событие колеса мыши.
- Параметры
event (
QWheelEvent) – Событие колеса мыши.- Тип результата
- Результат
PassEvent, чтобы пропустить событие дальше по цепочке обработчиков.NoneилиBlockEvent, чтобы блокировать дальнейшую обработку события.
-