SnapTool¶
-
class
axioma.gui.
SnapTool
¶ Класс инструмента с поддержкой привязки к существующим координатам в окне карты или отчета
Унаследован от:
Методы:
-
SnapTool
(view)¶ Конструктор
- Параметры
view (
ItemView
) – Окно, с которым будет работать данный инструмент
-
isSnapped
()¶ Признак того, что для текущего положения указателя мыши сработала привязка к элементам карты или отчета.
- Тип результата
-
scenePoint
()¶ Возвращает текущие координаты указателя мыши в единицах измерения карты или отчета
- Тип результата
-
Пример использования в виде расширения:
''' Пример инструмента с поддержкой возможности привязки к координатам ''' class MySnapTool(axioma.gui.SnapTool): def __init__(self, view): super().__init__(view) # Переопределяем нажатие на клавишу мыши def mousePressEvent(self, event): try: # Если нажали левую клавишу мыши if (event.button() == Qt.LeftButton): # Координаты сцены по нажатию currentPoint = self.scenePoint() # Исправленные координаты snapped = self.snapPoint() sourcePointMess = 'Исходная точка {} {}'.format(currentPoint.x(), currentPoint.y()) snapPointMess = 'Исправленная точка {} {}'.format(snapped.x(), snapped.y()) QMessageBox.information(axioma.app.mainWindow, "Результат", sourcePointMess + '\n' + snapPointMess) except Exception as ex: print(ex) finally: return super().mousePressEvent(event) # Определяем контроллер для создания нашего инструмента class MySnapToolController(axioma.gui.extension.DrawingToolController): def __init__(self, parent=None): super().__init__( parent) # Переопределяем метод создания инструмента def createTool(self, widget): return MySnapTool(widget, self.guiSettingsManager()) def createMyExtensions(): # Создаем новую группу в панели карты ribbonExt = axioma.gui.extension.RibbonExtension() ribbonExt.addGroup("map","SnapGroupId", "Узлы") ribbonExt.addAction("MySnapTool", "map", "SnapGroupId") # Добавляем определенный ранее контроллер toolExt = axioma.gui.extension.ToolControllerExtension(MySnapToolController, "MySnapTool", icon=QIcon.fromTheme("snap_geometries"), text="Пример инструмента со SNAP") return [ribbonExt, toolExt]