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.

canDeactivate(reason)

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

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

Параметры

reason (DeactivationReason) – причина выключения.

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

bool

Результат

False чтобы прервать выключение, иначе True.

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, чтобы блокировать дальнейшую обработку события.

class axipy.gui.DeactivationReason(value)

Причина выключения инструмента.

Значения

Значение

Наименование

Unknown

Не определено

ObjectClose

Закрытие объекта данных

WindowClose

Закрытие окна

ActionClick

Нажатие на действие

ActionShortcut

Вызов действия комбинацией клавиш

LayerClick

Нажатие на свойства слоя