ViewTool - Инструмент окна карты или отчета

class axipy.ViewTool

Инструмент работы с окном карты или отчета.

Классовые методы:

reset()

Переключает текущий инструмент на инструмент по умолчанию.

Свойства:

cursor

Устанавливает или возвращает курсор инструмента.

is_active

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

view

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

Атрибуты:

ACCEPT

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

IGNORE

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

Методы:

can_unload(reason)

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

get_select_rect(device[, size])

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

handleEvent(event)

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

is_snapped()

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

keyPressEvent(event)

Переопределите, чтобы обрабатывать событие нажатия клавиши клавиатуры.

keyReleaseEvent(event)

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

load()

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

mouseDoubleClickEvent(event)

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

mouseMoveEvent(event)

Переопределите, чтобы обрабатывать событие перемещения мыши.

mousePressEvent(event)

Переопределите, чтобы обрабатывать событие нажатия клавиши мыши.

mouseReleaseEvent(event)

Переопределите, чтобы обрабатывать событие отпускания клавиши мыши.

on_active_changed()

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

paintEvent(event, painter)

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

redraw()

Перерисовывает окно карты.

snap()

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

snap_device()

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

to_device()

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

to_scene()

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

unload()

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

wheelEvent(event)

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

Классы:

ViewType

Тип окна просмотра

ACCEPT: Literal[True]

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

IGNORE: Literal[False]

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

class ViewType

Тип окна просмотра

Атрибуты:

MAP_VIEW

Окно карты

REPORT_VIEW

Окно отчета

can_unload(reason: DeactivationReason) bool

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

Параметры:

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

Результат:

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

property cursor: QCursor

Устанавливает или возвращает курсор инструмента.

Первоначально курсор для инструмента можно установить, переопределив метод load():

class MyTool(ViewTool):
    def load(self):
        self.cursor = QCursor(Qt.SizeAllCursor)

Если же требуется устанавливать различные типы курсора в зависимости от статуса нажатия ПКМ, следует переопределить методы mousePressEvent() и mouseReleaseEvent() и установить нужное значение там:

class MyTool(ViewTool):
    def mousePressEvent(self, event) -> bool:
        if event.button() == Qt.LeftButton:
            self.cursor = QCursor(Qt.SizeAllCursor)
get_select_rect(device: QPoint, size: Optional[int] = None) Rect

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

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

  • size – Размер квадрата в пикселях. При None, берется из настроек Аксиомы (axipy.CurrentSettings.SensitiveMouse)

Результат:

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

Пример:

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

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

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

Параметры:

event – Событие.

Результат:

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

property is_active: bool

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

is_snapped() bool

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

См.также

snap(), snap_device().

keyPressEvent(event: QKeyEvent) bool

Переопределите, чтобы обрабатывать событие нажатия клавиши клавиатуры.

Параметры:

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

Результат:

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

keyReleaseEvent(event: QKeyEvent) bool

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

Параметры:

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

Результат:

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

load()

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

См.также

unload().

mouseDoubleClickEvent(event: QMouseEvent) bool

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

Параметры:

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

Результат:

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

mouseMoveEvent(event: QMouseEvent) bool

Переопределите, чтобы обрабатывать событие перемещения мыши.

Параметры:

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

Результат:

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

mousePressEvent(event: QMouseEvent) bool

Переопределите, чтобы обрабатывать событие нажатия клавиши мыши.

Параметры:

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

Результат:

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

mouseReleaseEvent(event: QMouseEvent) bool

Переопределите, чтобы обрабатывать событие отпускания клавиши мыши.

Параметры:

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

Результат:

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

on_active_changed()

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

См.также

is_active.

paintEvent(event: QPaintEvent, painter: QPainter)

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

Параметры:
  • event – Событие отрисовки.

  • painter – QPainter для рисования поверх виджета

redraw()

Перерисовывает окно карты.

Создает событие PySide2.QtGui.QPaintEvent и помещает его в очередь обработки событий. Аналогично PySide2.QtWidgets.QWidget.update().

static reset()

Переключает текущий инструмент на инструмент по умолчанию. Инструментом по умолчанию является Выбор. В результате будет вызван unload() текущего инструмента. Делает то же самое что axipy.ActionManager.activate_selection_tool().

snap() Optional[Pnt]
snap(default_value: None) Optional[Pnt]
snap(default_value: Pnt) Pnt

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

Параметры:

default_value – Значение по умолчанию.

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

Пример:

point = self.to_scene(event.pos())
current_point = self.snap(point)
snap_device() Optional[QPoint]
snap_device(default_value: None) Optional[QPoint]
snap_device(default_value: QPoint) QPoint

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

Параметры:

default_value – Значение по умолчанию.

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

Пример:

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

См.также

is_snapped(), snap().

to_device(scene: Pnt) QPoint
to_device(scene: Rect) QRect

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

Параметры:

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

Результат:

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

to_scene(device: QPoint) Pnt
to_scene(device: QRect) Rect

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

Параметры:

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

Результат:

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

unload()

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

См.также

load().

property view: Union[MapView, ReportView]

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

wheelEvent(event: QWheelEvent) bool

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

Параметры:

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

Результат:

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