|
QGIS API Documentation 4.1.0-Master (4aad578bf8d)
|
Abstract base class for all map tools. More...
#include <qgsmaptool.h>

Public Types | |
| enum | Flag { Transient = 1 << 1 , EditTool = 1 << 2 , AllowZoomRect = 1 << 3 , ShowContextMenu = 1 << 4 } |
| Enumeration of flags that adjust the way the map tool operates. More... | |
| typedef QFlags< Flag > | Flags |
| enum class | PropertyStatus { Valid , DoesNotExist , CurrentExpressionInvalid } |
| Property status used in method dealing with property. More... | |
Signals | |
| void | activated () |
| Emitted when the map tool is activated. | |
| void | deactivated () |
| Emitted when the map tool is deactivated. | |
| void | messageDiscarded () |
| Emitted when the previous message from the tool should be cleared from the application message bar. | |
| void | messageEmitted (const QString &message, Qgis::MessageLevel level=Qgis::MessageLevel::Info) |
| Emitted when a message should be shown to the user in the application message bar. | |
| void | reactivated () |
| Emitted when the map tool is activated, while it is already active. | |
Public Member Functions | |
| ~QgsMapTool () override | |
| QAction * | action () |
Returns associated action with map tool or nullptr if no action is associated. | |
| virtual void | activate () |
| called when set as currently active map tool | |
| QAbstractButton * | button () |
Returns associated button with map tool or nullptr if no button is associated. | |
| QgsMapCanvas * | canvas () const |
| returns pointer to the tool's map canvas | |
| virtual void | canvasDoubleClickEvent (QgsMapMouseEvent *e) |
| Mouse double-click event for overriding. Default implementation does nothing. | |
| virtual void | canvasMoveEvent (QgsMapMouseEvent *e) |
| Mouse move event for overriding. Default implementation does nothing. | |
| virtual void | canvasPressEvent (QgsMapMouseEvent *e) |
| Mouse press event for overriding. Default implementation does nothing. | |
| virtual void | canvasReleaseEvent (QgsMapMouseEvent *e) |
| Mouse release event for overriding. Default implementation does nothing. | |
| virtual bool | canvasToolTipEvent (QHelpEvent *e) |
| Tooltip event for overriding. | |
| virtual void | clean () |
| convenient method to clean members | |
| int | dataDefinedColumnIndex (int propertyKey, const QgsPropertyCollection &properties, const QgsVectorLayer *vlayer) const |
| Returns data defined property column index for the propertyKey from properties associated to the layer. | |
| QString | dataDefinedColumnName (int propertyKey, const QgsPropertyCollection &properties, const QgsVectorLayer *layer, PropertyStatus &status) const |
| Returns data defined property column name for the propertyKey from properties associated to the layer status is updated with current property status. | |
| virtual void | deactivate () |
| called when map tool is being deactivated | |
| virtual Flags | flags () const |
| Returns the flags for the map tool. | |
| virtual bool | gestureEvent (QGestureEvent *e) |
| gesture event for overriding. Default implementation does nothing. | |
| bool | isActive () const |
| Returns if the current map tool active on the map canvas. | |
| virtual void | keyPressEvent (QKeyEvent *e) |
| Key event for overriding. Default implementation does nothing. | |
| virtual void | keyReleaseEvent (QKeyEvent *e) |
| Key event for overriding. Default implementation does nothing. | |
| virtual void | populateContextMenu (QMenu *menu) |
| Allows the tool to populate and customize the given menu, prior to showing it in response to a right-mouse button click. | |
| virtual bool | populateContextMenuWithEvent (QMenu *menu, QgsMapMouseEvent *event) |
| Allows the tool to populate and customize the given menu, prior to showing it in response to a right-mouse button click. | |
| virtual void | reactivate () |
| Called when the map tool is being activated while it is already active. | |
| void | setAction (QAction *action) |
| Use this to associate a QAction to this maptool. | |
| void | setButton (QAbstractButton *button) |
| Use this to associate a button to this maptool. | |
| virtual void | setCursor (const QCursor &cursor) |
| Sets a user defined cursor. | |
| virtual bool | shortcutEvent (QKeyEvent *e) |
| Shortcut events coming from the application for overriding. | |
| QgsPointXY | toMapCoordinates (QPoint point) |
| Transforms a point from screen coordinates to map coordinates. | |
| QString | toolName () |
| Emit map tool changed with the old tool. | |
| virtual void | wheelEvent (QWheelEvent *e) |
| Mouse wheel event for overriding. Default implementation does nothing. | |
Static Public Member Functions | |
| static double | searchRadiusMM () |
| Gets search radius in mm. | |
| static double | searchRadiusMU (const QgsRenderContext &context) |
| Gets search radius in map units for given context. | |
| static double | searchRadiusMU (QgsMapCanvas *canvas) |
| Gets search radius in map units for given canvas. | |
Static Public Attributes | |
| static const QgsSettingsEntryDouble * | settingSearchRadiusMM = new QgsSettingsEntryDouble( u"search-radius-mm"_s, QgsSettingsTree::sTreeMap, Qgis::DEFAULT_SEARCH_RADIUS_MM, u"Search/identify radius in millimeters"_s ) |
| Settings entry for the search/identify radius in mm. | |
Protected Member Functions | |
| QgsMapTool (QgsMapCanvas *canvas) | |
| Constructor takes a map canvas as a parameter. | |
| QgsMapLayer * | layer (const QString &id) |
Returns the map layer with the matching ID, or nullptr if no layers could be found. | |
| void | setToolName (const QString &name) |
| Sets the tool's name. | |
| QPoint | toCanvasCoordinates (const QgsPointXY &point) const |
| Transforms a point from map coordinates to screen coordinates. | |
| QgsPoint | toLayerCoordinates (const QgsMapLayer *layer, const QgsPoint &point) |
| Transforms a point from map coordinates to layer coordinates. | |
| QgsPointXY | toLayerCoordinates (const QgsMapLayer *layer, const QgsPointXY &point) |
| Transforms a point from map coordinates to layer coordinates. | |
| QgsRectangle | toLayerCoordinates (const QgsMapLayer *layer, const QgsRectangle &rect) |
| Transforms a rect from map coordinates to layer coordinates. | |
| QgsPointXY | toLayerCoordinates (const QgsMapLayer *layer, QPoint point) |
| Transforms a point from screen coordinates to layer coordinates. | |
| QgsPoint | toMapCoordinates (const QgsMapLayer *layer, const QgsPoint &point) |
| Transforms a point from layer coordinates to map coordinates (which is different in case reprojection is used). | |
| QgsPointXY | toMapCoordinates (const QgsMapLayer *layer, const QgsPointXY &point) |
| Transforms a point from layer coordinates to map coordinates (which is different in case reprojection is used). | |
Protected Attributes | |
| QAction * | mAction = nullptr |
| Optional pointer to an action that will be checked on map tool activation and unchecked on map tool deactivation. | |
| QAbstractButton * | mButton = nullptr |
| Optional pointer to a button that will be checked on map tool activation and unchecked on map tool deactivation. | |
| QPointer< QgsMapCanvas > | mCanvas |
| The pointer to the map canvas. | |
| QCursor | mCursor |
| The cursor used in the map tool. | |
| QString | mToolName |
| The translated name of the map tool. | |
Friends | |
| class | QgsMapCanvas |
| class | TestQgsMapToolEdit |
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.
Definition at line 73 of file qgsmaptool.h.
| typedef QFlags< Flag > QgsMapTool::Flags |
Definition at line 117 of file qgsmaptool.h.
| enum QgsMapTool::Flag |
Enumeration of flags that adjust the way the map tool operates.
| Enumerator | |
|---|---|
| Transient | Deprecated since QGIS 3.36 – no longer used by QGIS and will be removed in QGIS 5.0. |
| EditTool | Map tool is an edit tool, which can only be used when layer is editable. |
| AllowZoomRect | Allow zooming by rectangle (by holding shift and dragging) while the tool is active. |
| ShowContextMenu | Show a context menu when right-clicking with the tool (since QGIS 3.14). See populateContextMenu(). |
Definition at line 110 of file qgsmaptool.h.
|
strong |
Property status used in method dealing with property.
| Enumerator | |
|---|---|
| Valid | Property is valid. |
| DoesNotExist | Property does not exist. |
| CurrentExpressionInvalid | Property is an invalid expression. |
Definition at line 292 of file qgsmaptool.h.
|
override |
Definition at line 46 of file qgsmaptool.cpp.
|
protected |
Constructor takes a map canvas as a parameter.
Definition at line 39 of file qgsmaptool.cpp.
| QAction * QgsMapTool::action | ( | ) |
Returns associated action with map tool or nullptr if no action is associated.
Definition at line 155 of file qgsmaptool.cpp.
|
virtual |
called when set as currently active map tool
Reimplemented in QgsMapToolAdvancedDigitizing, QgsMapToolCapture, QgsMapToolDigitizeFeature, QgsMapToolEditBlankSegmentsBase, QgsMapToolExtent, QgsMapToolIdentify, QgsMapToolModifyExtraItems, QgsMapToolPan, and QgsMapToolSelectAnnotation.
Definition at line 105 of file qgsmaptool.cpp.
|
signal |
Emitted when the map tool is activated.
| QAbstractButton * QgsMapTool::button | ( | ) |
Returns associated button with map tool or nullptr if no button is associated.
Definition at line 170 of file qgsmaptool.cpp.
| QgsMapCanvas * QgsMapTool::canvas | ( | ) | const |
returns pointer to the tool's map canvas
Definition at line 236 of file qgsmaptool.cpp.
|
virtual |
Mouse double-click event for overriding. Default implementation does nothing.
Reimplemented in QgsMapToolModifyAnnotation, and QgsMapToolPan.
Definition at line 188 of file qgsmaptool.cpp.
|
virtual |
Mouse move event for overriding. Default implementation does nothing.
Reimplemented in QgsMapToolAdvancedDigitizing, QgsMapToolEditBlankSegmentsBase, QgsMapToolEmitPoint, QgsMapToolExtent, QgsMapToolIdentify, QgsMapToolModifyExtraItems, QgsMapToolPan, QgsMapToolSelect, and QgsMapToolZoom.
Definition at line 183 of file qgsmaptool.cpp.
|
virtual |
Mouse press event for overriding. Default implementation does nothing.
Reimplemented in QgsMapToolAddExtraItem, QgsMapToolAdvancedDigitizing, QgsMapToolEditBlankSegmentsBase, QgsMapToolEmitPoint, QgsMapToolExtent, QgsMapToolIdentify, QgsMapToolModifyExtraItems, QgsMapToolPan, QgsMapToolSelect, and QgsMapToolZoom.
Definition at line 193 of file qgsmaptool.cpp.
|
virtual |
Mouse release event for overriding. Default implementation does nothing.
Reimplemented in QgsMapToolAdvancedDigitizing, QgsMapToolEmitPoint, QgsMapToolExtent, QgsMapToolIdentify, QgsMapToolIdentifyFeature, QgsMapToolModifyExtraItems, QgsMapToolPan, QgsMapToolSelect, and QgsMapToolZoom.
Definition at line 198 of file qgsmaptool.cpp.
|
virtual |
Tooltip event for overriding.
Default implementation does nothing. Returns whether the event was handled by the tool and should not be propagated further.
Definition at line 224 of file qgsmaptool.cpp.
|
virtual |
convenient method to clean members
Reimplemented in QgsMapToolCapture.
Definition at line 137 of file qgsmaptool.cpp.
| int QgsMapTool::dataDefinedColumnIndex | ( | int | propertyKey, |
| const QgsPropertyCollection & | properties, | ||
| const QgsVectorLayer * | vlayer ) const |
Returns data defined property column index for the propertyKey from properties associated to the layer.
Definition at line 354 of file qgsmaptool.cpp.
| QString QgsMapTool::dataDefinedColumnName | ( | int | propertyKey, |
| const QgsPropertyCollection & | properties, | ||
| const QgsVectorLayer * | layer, | ||
| PropertyStatus & | status ) const |
Returns data defined property column name for the propertyKey from properties associated to the layer status is updated with current property status.
Definition at line 278 of file qgsmaptool.cpp.
|
virtual |
called when map tool is being deactivated
Reimplemented in QgsMapToolAdvancedDigitizing, QgsMapToolCapture, QgsMapToolDigitizeFeature, QgsMapToolExtent, QgsMapToolIdentify, QgsMapToolModifyAnnotation, QgsMapToolModifyExtraItems, QgsMapToolPan, QgsMapToolSelect, QgsMapToolSelectAnnotation, and QgsMapToolZoom.
Definition at line 121 of file qgsmaptool.cpp.
|
signal |
Emitted when the map tool is deactivated.
|
inlinevirtual |
Returns the flags for the map tool.
Reimplemented in QgsMapToolEdit, QgsMapToolEmitPoint, QgsMapToolExtent, QgsMapToolIdentify, QgsMapToolPan, QgsMapToolSelect, and QgsMapToolZoom.
Definition at line 122 of file qgsmaptool.h.
|
virtual |
gesture event for overriding. Default implementation does nothing.
Reimplemented in QgsMapToolPan.
Definition at line 218 of file qgsmaptool.cpp.
| bool QgsMapTool::isActive | ( | ) | const |
Returns if the current map tool active on the map canvas.
Definition at line 160 of file qgsmaptool.cpp.
|
virtual |
Key event for overriding. Default implementation does nothing.
Reimplemented in QgsCreatePictureItemMapTool, QgsCreateRectangleTextItemMapTool, QgsMapToolAddExtraItem, QgsMapToolCapture, QgsMapToolDigitizeFeature, QgsMapToolEditBlankSegmentsBase, QgsMapToolIdentifyFeature, QgsMapToolModifyAnnotation, QgsMapToolModifyExtraItems, QgsMapToolSelect, QgsMapToolSelectAnnotation, and QgsMapToolZoom.
Definition at line 208 of file qgsmaptool.cpp.
|
virtual |
Key event for overriding. Default implementation does nothing.
Reimplemented in QgsMapToolCapture, QgsMapToolSelect, and QgsMapToolZoom.
Definition at line 213 of file qgsmaptool.cpp.
|
protected |
Returns the map layer with the matching ID, or nullptr if no layers could be found.
This method searches both layers associated with the map canvas (see QgsMapCanvas::layers()) and layers from the QgsProject associated with the canvas. It can be used to resolve layer IDs to layers which may be visible in the canvas, but not associated with a QgsProject.
Definition at line 95 of file qgsmaptool.cpp.
|
signal |
Emitted when the previous message from the tool should be cleared from the application message bar.
|
signal |
Emitted when a message should be shown to the user in the application message bar.
|
virtual |
Allows the tool to populate and customize the given menu, prior to showing it in response to a right-mouse button click.
menu will be initially populated with a set of default, generic actions. Any new actions added to the menu should be correctly parented to menu.
The default implementation does nothing.
Definition at line 269 of file qgsmaptool.cpp.
|
virtual |
Allows the tool to populate and customize the given menu, prior to showing it in response to a right-mouse button click.
menu will be initially populated with a set of default, generic actions. Any new actions added to the menu should be correctly parented to menu.
A pointer to the map mouse event can be provided to allow particular behavior depending on the map tool.
This method can return true to inform the caller that the menu was effectively populated.
The default implementation does nothing and returns false.
Reimplemented in QgsMapToolSelect.
Definition at line 273 of file qgsmaptool.cpp.
|
virtual |
Called when the map tool is being activated while it is already active.
The default implementation emits the reactivated () signal.
Reimplemented in QgsMapToolDigitizeFeature.
Definition at line 132 of file qgsmaptool.cpp.
|
signal |
Emitted when the map tool is activated, while it is already active.
|
static |
Gets search radius in mm.
Used by identify, tip etc. The values is currently set in identify tool options (move somewhere else?) and defaults to Qgis::DEFAULT_SEARCH_RADIUS_MM.
Definition at line 241 of file qgsmaptool.cpp.
|
static |
Gets search radius in map units for given context.
Used by identify, tip etc. The values is calculated from searchRadiusMM().
Definition at line 252 of file qgsmaptool.cpp.
|
static |
Gets search radius in map units for given canvas.
Used by identify, tip etc. The values is calculated from searchRadiusMM().
Definition at line 257 of file qgsmaptool.cpp.
| void QgsMapTool::setAction | ( | QAction * | action | ) |
Use this to associate a QAction to this maptool.
Then when the setMapTool method of mapcanvas is called the action state will be set to on. Usually this will cause e.g. a toolbutton to appear pressed in and the previously used toolbutton to pop out.
Definition at line 140 of file qgsmaptool.cpp.
| void QgsMapTool::setButton | ( | QAbstractButton * | button | ) |
Use this to associate a button to this maptool.
It has the same meaning as setAction() function except it works with a button instead of an QAction.
Definition at line 165 of file qgsmaptool.cpp.
|
virtual |
Sets a user defined cursor.
Definition at line 175 of file qgsmaptool.cpp.
|
protected |
Sets the tool's name.
Definition at line 100 of file qgsmaptool.cpp.
|
virtual |
Shortcut events coming from the application for overriding.
The default implementation does nothing. Returns whether the event was handled by the tool and should not be propagated further.
Reimplemented in QgsMapToolSelectAnnotation.
Definition at line 230 of file qgsmaptool.cpp.
|
protected |
Transforms a point from map coordinates to screen coordinates.
Definition at line 88 of file qgsmaptool.cpp.
|
protected |
Transforms a point from map coordinates to layer coordinates.
Definition at line 73 of file qgsmaptool.cpp.
|
protected |
Transforms a point from map coordinates to layer coordinates.
Definition at line 68 of file qgsmaptool.cpp.
|
protected |
Transforms a rect from map coordinates to layer coordinates.
Definition at line 83 of file qgsmaptool.cpp.
|
protected |
Transforms a point from screen coordinates to layer coordinates.
Definition at line 62 of file qgsmaptool.cpp.
|
protected |
Transforms a point from layer coordinates to map coordinates (which is different in case reprojection is used).
Definition at line 57 of file qgsmaptool.cpp.
|
protected |
Transforms a point from layer coordinates to map coordinates (which is different in case reprojection is used).
Definition at line 78 of file qgsmaptool.cpp.
| QgsPointXY QgsMapTool::toMapCoordinates | ( | QPoint | point | ) |
Transforms a point from screen coordinates to map coordinates.
Definition at line 52 of file qgsmaptool.cpp.
|
inline |
Emit map tool changed with the old tool.
Definition at line 219 of file qgsmaptool.h.
|
virtual |
Mouse wheel event for overriding. Default implementation does nothing.
Reimplemented in QgsMapToolCapture.
Definition at line 203 of file qgsmaptool.cpp.
|
friend |
Definition at line 423 of file qgsmaptool.h.
|
friend |
Definition at line 424 of file qgsmaptool.h.
|
protected |
Optional pointer to an action that will be checked on map tool activation and unchecked on map tool deactivation.
Definition at line 412 of file qgsmaptool.h.
|
protected |
Optional pointer to a button that will be checked on map tool activation and unchecked on map tool deactivation.
Definition at line 418 of file qgsmaptool.h.
|
protected |
The pointer to the map canvas.
Definition at line 403 of file qgsmaptool.h.
|
protected |
The cursor used in the map tool.
Definition at line 406 of file qgsmaptool.h.
|
protected |
The translated name of the map tool.
Definition at line 421 of file qgsmaptool.h.
|
static |
Settings entry for the search/identify radius in mm.
Definition at line 234 of file qgsmaptool.h.