MapTool - Инструмент окна карты¶
-
class
axipy.gui.
MapTool
¶ Инструмент окна карты.
При создании своего инструмента новый инструмент наследуется от этого класса, и переопределяет необходимые обработчики событий.
См.также
-
enable_on
¶ Идентификатор наблюдателя для определения доступности инструмента. По умолчанию отсутствует.
- Type
Union[str, DefaultKeys]
Пример:
MyTool(MapTool): def mousePressEvent(self, event): print('mouse pressed') return self.PassEvent
Methods:
canDeactivate
(reason)Обрабатывает причину выключения инструмента.
canUnload
(reason)Обрабатывает причину выключения инструмента.
Выполняет действия непосредственно перед выключением инструмента и перед его удалением.
get_select_rect
(device[, size])Возвращает прямоугольник в координатах карты для точки на экране.
handleEvent
(event)Первичный обработчик всех событий инструмента.
Проверяет, сработала ли привязка к элементам карты или отчета для текущего положения указателя мыши.
keyPressEvent
(event)Обрабатывает событие нажатия клавиши клавиатуры.
keyReleaseEvent
(event)Обрабатывает событие отпускания клавиши клавиатуры.
load
()Выполняет действия непосредственно перед включением инструмента.
mouseDoubleClickEvent
(event)Обрабатывает событие двойного клика мыши.
mouseMoveEvent
(event)Обрабатывает событие перемещения мыши.
mousePressEvent
(event)Обрабатывает событие нажатия клавиши мыши.
mouseReleaseEvent
(event)Обрабатывает событие отпускания клавиши мыши.
paintEvent
(event, painter)Обрабатывает событие отрисовки.
redraw
()Перерисовывает окно карты.
reset
()Переключает текущий инструмент на инструмент по умолчанию.
snap
([default_value])Возвращает исправленные координаты, если сработала привязка к элементам в единицах измерения карты или отчета.
snap_device
([default_value])Возвращает исправленные координаты, если сработала привязка к элементам в единицах измерения окна карты (виджета).
to_device
(scene)Переводит точки из координат на карте в координаты окна(пиксели).
to_scene
(device)Переводит точки из координат окна(пикселей) в координаты на карте.
unload
()Выполняет действия непосредственно перед выключением инструмента и перед его удалением.
wheelEvent
(event)Обрабатывает событие колеса мыши.
Attributes:
Текущий курсор для данного инструмента.
Отображение данных в окне.
-
canDeactivate
(reason)¶ Обрабатывает причину выключения инструмента.
Переопределите этот метод, чтобы задать свой обработчик.
- Параметры
reason (
DeactivationReason
) – причина выключения.- Тип результата
- Результат
False чтобы прервать выключение, иначе True.
Не рекомендуется, начиная с версии 3.6: Используйте
canUnload()
.
-
canUnload
(reason)¶ Обрабатывает причину выключения инструмента.
Переопределите этот метод, чтобы задать свой обработчик.
- Параметры
reason (
DeactivationReason
) – причина выключения.- Тип результата
- Результат
False чтобы прервать выключение, иначе True.
-
property
cursor
¶ Текущий курсор для данного инструмента.
Первоначально курсор для инструмента можно установить, переопределив метод
load()
:class MyTool(MapTool): def load(self): self.cursor = QCursor(Qt.SizeAllCursor)
Если же требуется устанавливать различный типы курсора в зависимости от статуса нажатия ПКМ, следует переопределить методы
mousePressEvent()
иmouseReleaseEvent()
и установить нужное значение там:class MyTool(MapTool): def mousePressEvent(self, event) -> bool: if event.button() == Qt.LeftButton: self.cursor = QCursor(Qt.SizeAllCursor)
- Тип результата
-
deactivate
()¶ Выполняет действия непосредственно перед выключением инструмента и перед его удалением.
Не рекомендуется, начиная с версии 3.6: Используйте
unload()
.
-
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)¶ Обрабатывает событие отпускания клавиши клавиатуры.
-
load
()¶ Выполняет действия непосредственно перед включением инструмента.
Переопределите этот метод, чтобы задать свои действия.
См.также
-
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)¶ Переводит точки из координат окна(пикселей) в координаты на карте.
-
unload
()¶ Выполняет действия непосредственно перед выключением инструмента и перед его удалением.
Переопределите этот метод, чтобы задать свои действия.
См.также
-
wheelEvent
(event)¶ Обрабатывает событие колеса мыши.
- Параметры
event (
QWheelEvent
) – Событие колеса мыши.- Тип результата
- Результат
PassEvent
, чтобы пропустить событие дальше по цепочке обработчиков.None
илиBlockEvent
, чтобы блокировать дальнейшую обработку события.
-