Class: QgsMapToolAdvancedDigitizing¶
The QgsMapToolAdvancedDigitizing
class is a
QgsMapTool
which gives event directly in map coordinates and
allows filtering its events. Events from QgsMapTool
are
caught and their QMouseEvent are transformed into
QgsMapMouseEvent
(with map coordinates). Events are then
forwarded to corresponding virtual methods which can be reimplemented in
subclasses. An event filter can be set on the map tool to filter and
modify the events in map coordinates
(QgsMapToolMapEventFilter
).
Note
at the moment, the event filter is used by the CAD tools (QgsCadDocWidget
).
Note
the event filter definition is not exposed in Python API to avoid any unexpected behavior.
Class Hierarchy¶
Base classes¶
Base class for map tools that edit vector geometry |
|
Abstract base class for all map tools. Map tools are user interactive tools for manipulating the map canvas. For example map pan and zoom features are implemented as map tools. |
|
Subclasses¶
|
Methods
Registers this maptool with the cad dock widget |
|
Override this method when subclassing this class. |
|
Override this method when subclassing this class. |
|
Override this method when subclassing this class. |
|
Catch the mouse move event, filters it, transforms it to map coordinates and send it to virtual method |
|
Catch the mouse press event, filters it, transforms it to map coordinates and send it to virtual method |
|
Catch the mouse release event, filters it, transforms it to map coordinates and send it to virtual method |
|
Unregisters this maptool from the cad dock widget |
|
Returns whether functionality of advanced digitizing dock widget is currently allowed. |
|
Returns whether mouse events (press/move/release) should automatically try to snap mouse position (according to the snapping configuration of map canvas) before passing the mouse coordinates to the tool. |
|
Returns the layer associated with the map tool. |
|
Sets whether functionality of advanced digitizing dock widget is currently allowed. |
|
Sets whether mouse events (press/move/release) should automatically try to snap mouse position This method is protected because it should be a decision of the map tool and not from elsewhere. |
|
Enables or disables snap to grid of mouse events. |
|
Sets whether a snapping indicator should automatically be used. |
|
Enables or disables snap to grid of mouse events. |
|
Returns whether the snapping indicator should automatically be used. |
- class qgis.gui.QgsMapToolAdvancedDigitizing[source]¶
Bases:
QgsMapToolEdit
- __init__(canvas: QgsMapCanvas | None, cadDockWidget: QgsAdvancedDigitizingDockWidget | None)
Creates an advanced digitizing maptool
- Parameters:
canvas (Optional[QgsMapCanvas]) – The map canvas on which the tool works
cadDockWidget (Optional[QgsAdvancedDigitizingDockWidget]) – The cad dock widget which will be used to adjust mouse events
- cadCanvasMoveEvent(self, e: QgsMapMouseEvent | None)[source]¶
Override this method when subclassing this class. This will receive adapted events from the cad system whenever a canvasMoveEvent is triggered and it’s not hidden by the cad’s construction mode.
- Parameters:
e (Optional[QgsMapMouseEvent]) – Mouse events prepared by the cad system
- cadCanvasPressEvent(self, e: QgsMapMouseEvent | None)[source]¶
Override this method when subclassing this class. This will receive adapted events from the cad system whenever a canvasPressEvent is triggered and it’s not hidden by the cad’s construction mode.
- Parameters:
e (Optional[QgsMapMouseEvent]) – Mouse events prepared by the cad system
- cadCanvasReleaseEvent(self, e: QgsMapMouseEvent | None)[source]¶
Override this method when subclassing this class. This will receive adapted events from the cad system whenever a canvasReleaseEvent is triggered and it’s not hidden by the cad’s construction mode.
- Parameters:
e (Optional[QgsMapMouseEvent]) – Mouse events prepared by the cad system
- cadDockWidget(self) QgsAdvancedDigitizingDockWidget | None [source]¶
- Return type:
Optional[QgsAdvancedDigitizingDockWidget]
- canvasMoveEvent(self, e: QgsMapMouseEvent | None)[source]¶
Catch the mouse move event, filters it, transforms it to map coordinates and send it to virtual method
- Parameters:
e (Optional[QgsMapMouseEvent])
- canvasPressEvent(self, e: QgsMapMouseEvent | None)[source]¶
Catch the mouse press event, filters it, transforms it to map coordinates and send it to virtual method
- Parameters:
e (Optional[QgsMapMouseEvent])
- canvasReleaseEvent(self, e: QgsMapMouseEvent | None)[source]¶
Catch the mouse release event, filters it, transforms it to map coordinates and send it to virtual method
- Parameters:
e (Optional[QgsMapMouseEvent])
- isAdvancedDigitizingAllowed(self) bool [source]¶
Returns whether functionality of advanced digitizing dock widget is currently allowed.
Tools may decide to switch this support on/off based on the current state of the map tool. For example, in vertex tool before user picks a vertex to move, advanced digitizing dock widget should be disabled and only enabled once a vertex is being moved. Other map tools may keep advanced digitizing allowed all the time.
If
True
is returned, that does not mean that advanced digitizing is actually active, because it is up to the user to enable/disable it when it is allowed.The default is that advanced digitizing is allowed.
See also
- Return type:
bool
- isAutoSnapEnabled(self) bool [source]¶
Returns whether mouse events (press/move/release) should automatically try to snap mouse position (according to the snapping configuration of map canvas) before passing the mouse coordinates to the tool. This may be desirable default behavior for some map tools, but not for other map tools. It is therefore possible to configure the behavior by the map tool.
The default is that auto snapping is enabled.
See also
- Return type:
bool
- layer(self) QgsMapLayer | None [source]¶
Returns the layer associated with the map tool.
By default this returns the map canvas’
QgsMapCanvas.currentLayer()
.Added in version 3.22.
- Return type:
Optional[QgsMapLayer]
- setAdvancedDigitizingAllowed(self, allowed: bool)[source]¶
Sets whether functionality of advanced digitizing dock widget is currently allowed. This method is protected because it should be a decision of the map tool and not from elsewhere.
The default is that advanced digitizing is allowed.
See also
- Parameters:
allowed (bool)
- setAutoSnapEnabled(self, enabled: bool)[source]¶
Sets whether mouse events (press/move/release) should automatically try to snap mouse position This method is protected because it should be a decision of the map tool and not from elsewhere.
The default is that auto snapping is enabled.
See also
- Parameters:
enabled (bool)
- setSnapToLayerGridEnabled(self, snapToLayerGridEnabled: bool)[source]¶
Enables or disables snap to grid of mouse events. The snapping will occur in the layer’s CRS.
Added in version 3.4.
- Parameters:
snapToLayerGridEnabled (bool)
- setUseSnappingIndicator(self, enabled: bool)[source]¶
Sets whether a snapping indicator should automatically be used.
The default is that a snap indicator is not used.
See also
Added in version 3.40.
- Parameters:
enabled (bool)
- snapToLayerGridEnabled(self) bool [source]¶
Enables or disables snap to grid of mouse events. The snapping will occur in the layer’s CRS.
Added in version 3.4.
- Return type:
bool