MapTool - Инструмент окна карты¶
-
class
axipy.gui.
MapTool
¶ Инструмент окна карты.
При создании своего инструмента новый инструмент наследуется от этого класса, и переопределяет необходимые обработчики событий.
-
enable_on
¶ Идентификатор наблюдателя для определения доступности инструмента. По умолчанию отсутствует.
- Type
Union[str, DefaultKeys]
Пример:
MyTool(MapTool): def mousePressEvent(self, event): print('mouse pressed') return self.PassEvent
См.также
-
canDeactivate
(reason)¶ Обрабатывает причину выключения инструмента.
Переопределите этот метод, чтобы задать свой обработчик.
- Параметры
reason (
DeactivationReason
) – причина выключения.- Тип результата
- Результат
False чтобы прервать выключение, иначе True.
-
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
, чтобы блокировать дальнейшую обработку события.
-