MapTool - Инструмент окна карты

class axipy.gui.MapTool

Инструмент окна карты.

При создании своего инструмента новый инструмент наследуется от этого класса, и переопределяет необходимые обработчики событий.

PassEvent

Передать событие дальше. Значение False.

Type

bool

BlockEvent

Прекратить обработку события. Значение True.

Type

bool

enable_on

Идентификатор наблюдателя для определения доступности инструмента. По умолчанию отсутствует.

Type

Union[str, DefaultKeys]

Пример:

MyTool(MapTool):

    def mousePressEvent(self, event):
        print('mouse pressed')
        return self.PassEvent

См.также

axipy.da.StateManager.

deactivate()

Выполняет действия непосредственно перед выключением инструмента и перед его удалением.

Переопределите этот метод, чтобы задать свои действия.

get_select_rect(device, size=3)

Возвращает прямоугольник в координатах карты для точки на экране.

Удобно для использования при поиске объектов.

Параметры
  • device (QPoint) – Точка в координатах окна.

  • size (int) – Размер квадрата в пикселях.

Тип результата

Rect

Результат

Прямоугольник в координатах карты.

Пример:

device_point = event.pos()
bbox = self.get_select_rect(device_point, 30)
features = table.items(bbox=bbox)
handleEvent(event)

Первичный обработчик всех событий инструмента.

Если событие не блокируется этим обработчиком, то оно будет передано дальше в соответствующий специализированный обработчик mousePressEvent(), keyReleaseEvent() и прочие в зависимости от типа.

Параметры

event (QEvent) – Событие.

Тип результата

Optional[bool]

Результат

BlockEvent, чтобы блокировать дальнейшую обработку события.

is_snapped()

Проверяет, сработала ли привязка к элементам карты или отчета для текущего положения указателя мыши.

См.также

snap(), snap_device().

Тип результата

bool

keyPressEvent(event)

Обрабатывает событие нажатия клавиши клавиатуры.

Параметры

event (QKeyEvent) – Событие нажатия клавиши клавиатуры.

Тип результата

Optional[bool]

Результат

PassEvent, чтобы пропустить событие дальше по цепочке обработчиков. None или BlockEvent, чтобы блокировать дальнейшую обработку события.

keyReleaseEvent(event)

Обрабатывает событие отпускания клавиши клавиатуры.

Параметры

event (QKeyEvent) – Событие отпускания клавиши клавиатуры.

Тип результата

Optional[bool]

Результат

PassEvent, чтобы пропустить событие дальше по цепочке обработчиков. None или BlockEvent, чтобы блокировать дальнейшую обработку события.

mouseDoubleClickEvent(event)

Обрабатывает событие двойного клика мыши.

Параметры

event (QMouseEvent) – Событие двойного клика мыши.

Тип результата

Optional[bool]

Результат

PassEvent, чтобы пропустить событие дальше по цепочке обработчиков. None или BlockEvent, чтобы блокировать дальнейшую обработку события.

mouseMoveEvent(event)

Обрабатывает событие перемещения мыши.

Параметры

event (QMouseEvent) – Событие перемещения мыши.

Тип результата

Optional[bool]

Результат

PassEvent или None, чтобы пропустить событие дальше по цепочке обработчиков. BlockEvent, чтобы блокировать дальнейшую обработку события.

mousePressEvent(event)

Обрабатывает событие нажатия клавиши мыши.

Параметры

event (QMouseEvent) – Событие нажатия клавиши мыши.

Тип результата

Optional[bool]

Результат

PassEvent, чтобы пропустить событие дальше по цепочке обработчиков. None или BlockEvent, чтобы блокировать дальнейшую обработку события.

mouseReleaseEvent(event)

Обрабатывает событие отпускания клавиши мыши.

Параметры

event (QMouseEvent) – Событие отпускания клавиши мыши.

Тип результата

Optional[bool]

Результат

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)

Возвращает исправленные координаты, если сработала привязка к элементам в единицах измерения карты или отчета.

Параметры

default_value (Optional[Pnt]) – Значение по умолчанию.

Возвращает значение по умолчанию, если не сработала привязка к элементам карты или отчета.

Пример:

point = self.to_scene(event.pos())
current_point = self.snap(point)
Тип результата

Optional[Pnt]

snap_device(default_value=None)

Возвращает исправленные координаты, если сработала привязка к элементам в единицах измерения окна карты (виджета).

Параметры

default_value (Optional[QPoint]) – Значение по умолчанию.

Возвращает значение по умолчанию, если не сработала привязка к элементам карты или отчета.

Пример:

device_point = event.pos()
current_device_point = self.snap_device(device_point)

См.также

is_snapped(), snap().

Тип результата

Optional[QPoint]

to_device(scene)

Переводит точки из координат на карте в координаты окна(пиксели).

Параметры

scene (Union[Pnt, Rect]) – Точки в координатах карты.

Тип результата

Union[QPoint, QRect]

Результат

Точки в координатах окна.

to_scene(device)

Переводит точки из координат окна(пикселей) в координаты на карте.

Параметры

device (Union[QPoint, QRect]) – Точки в координатах окна.

Тип результата

Union[Pnt, Rect]

Результат

Точки в координатах карты.

property view

Отображение данных в окне.

Тип результата

MapView

wheelEvent(event)

Обрабатывает событие колеса мыши.

Параметры

event (QWheelEvent) – Событие колеса мыши.

Тип результата

Optional[bool]

Результат

PassEvent, чтобы пропустить событие дальше по цепочке обработчиков. None или BlockEvent, чтобы блокировать дальнейшую обработку события.