QGIS API Documentation  3.2.0-Bonn (bc43194)
Public Types | Signals | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
QgsMapTool Class Reference

Abstract base class for all map tools. More...

#include <qgsmaptool.h>

Inheritance diagram for QgsMapTool:
Inheritance graph
[legend]

Public Types

enum  Flag { Transient = 1 << 1, EditTool = 1 << 2, AllowZoomRect = 1 << 3 }
 Enumeration of flags that adjust the way the map tool operates. More...
 

Signals

void activated ()
 signal emitted once the map tool is activated More...
 
void deactivated ()
 signal emitted once the map tool is deactivated More...
 
void messageDiscarded ()
 emit signal to clear previous message More...
 
void messageEmitted (const QString &message, Qgis::MessageLevel=Qgis::Info)
 emit a message More...
 

Public Member Functions

 ~QgsMapTool () override
 
QAction * action ()
 Returns associated action with map tool or NULL if no action is associated. More...
 
virtual void activate ()
 called when set as currently active map tool More...
 
QAbstractButton * button ()
 Returns associated button with map tool or NULL if no button is associated. More...
 
QgsMapCanvascanvas ()
 returns pointer to the tool's map canvas More...
 
virtual void canvasDoubleClickEvent (QgsMapMouseEvent *e)
 Mouse double-click event for overriding. Default implementation does nothing. More...
 
virtual void canvasMoveEvent (QgsMapMouseEvent *e)
 Mouse move event for overriding. Default implementation does nothing. More...
 
virtual void canvasPressEvent (QgsMapMouseEvent *e)
 Mouse press event for overriding. Default implementation does nothing. More...
 
virtual void canvasReleaseEvent (QgsMapMouseEvent *e)
 Mouse release event for overriding. Default implementation does nothing. More...
 
virtual void clean ()
 convenient method to clean members More...
 
virtual void deactivate ()
 called when map tool is being deactivated More...
 
virtual Flags flags () const
 Returns the flags for the map tool. More...
 
virtual bool gestureEvent (QGestureEvent *e)
 gesture event for overriding. Default implementation does nothing. More...
 
virtual void keyPressEvent (QKeyEvent *e)
 Key event for overriding. Default implementation does nothing. More...
 
virtual void keyReleaseEvent (QKeyEvent *e)
 Key event for overriding. Default implementation does nothing. More...
 
void setAction (QAction *action)
 Use this to associate a QAction to this maptool. More...
 
void setButton (QAbstractButton *button)
 Use this to associate a button to this maptool. More...
 
virtual void setCursor (const QCursor &cursor)
 Sets a user defined cursor. More...
 
QString toolName ()
 Emit map tool changed with the old tool. More...
 
virtual void wheelEvent (QWheelEvent *e)
 Mouse wheel event for overriding. Default implementation does nothing. More...
 

Static Public Member Functions

static double searchRadiusMM ()
 Gets search radius in mm. More...
 
static double searchRadiusMU (const QgsRenderContext &context)
 Gets search radius in map units for given context. More...
 
static double searchRadiusMU (QgsMapCanvas *canvas)
 Gets search radius in map units for given canvas. More...
 

Protected Member Functions

 QgsMapTool (QgsMapCanvas *canvas)
 constructor takes map canvas as a parameter More...
 
QPoint toCanvasCoordinates (const QgsPointXY &point)
 transformation from map coordinates to screen coordinates More...
 
QgsPointXY toLayerCoordinates (const QgsMapLayer *layer, QPoint point)
 transformation from screen coordinates to layer's coordinates More...
 
QgsPointXY toLayerCoordinates (const QgsMapLayer *layer, const QgsPointXY &point)
 transformation from map coordinates to layer's coordinates More...
 
QgsRectangle toLayerCoordinates (const QgsMapLayer *layer, const QgsRectangle &rect)
 trnasformation of the rect from map coordinates to layer's coordinates More...
 
QgsPointXY toMapCoordinates (QPoint point)
 transformation from screen coordinates to map coordinates More...
 
QgsPointXY toMapCoordinates (const QgsMapLayer *layer, const QgsPointXY &point)
 transformation from layer's coordinates to map coordinates (which is different in case reprojection is used) More...
 
QgsPoint toMapCoordinates (const QgsMapLayer *layer, const QgsPoint &point)
 transformation from layer's coordinates to map coordinates (which is different in case reprojection is used) More...
 

Protected Attributes

QAction * mAction = nullptr
 optionally map tool can have pointer to action which will be used to set that action as active More...
 
QAbstractButton * mButton = nullptr
 optionally map tool can have pointer to a button which will be used to set that action as active More...
 
QgsMapCanvasmCanvas = nullptr
 pointer to map canvas More...
 
QCursor mCursor
 cursor used in map tool More...
 
QString mToolName
 translated name of the map tool More...
 

Detailed Description

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 63 of file qgsmaptool.h.

Member Enumeration Documentation

◆ Flag

Enumeration of flags that adjust the way the map tool operates.

Since
QGIS 2.16
Enumerator
Transient 

Indicates that this map tool performs a transient (one-off) operation. If it does, the tool can be operated once and then a previous map tool automatically restored.

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.

Definition at line 89 of file qgsmaptool.h.

Constructor & Destructor Documentation

◆ ~QgsMapTool()

QgsMapTool::~QgsMapTool ( )
override

Definition at line 34 of file qgsmaptool.cpp.

◆ QgsMapTool()

QgsMapTool::QgsMapTool ( QgsMapCanvas canvas)
protected

constructor takes map canvas as a parameter

Definition at line 26 of file qgsmaptool.cpp.

Member Function Documentation

◆ action()

QAction * QgsMapTool::action ( )

Returns associated action with map tool or NULL if no action is associated.

Definition at line 127 of file qgsmaptool.cpp.

◆ activate()

void QgsMapTool::activate ( )
virtual

called when set as currently active map tool

Reimplemented in QgsMapToolIdentify, QgsMapToolCapture, QgsMapToolAdvancedDigitizing, QgsMapToolExtent, and QgsMapToolPan.

Definition at line 81 of file qgsmaptool.cpp.

◆ activated

void QgsMapTool::activated ( )
signal

signal emitted once the map tool is activated

◆ button()

QAbstractButton * QgsMapTool::button ( )

Returns associated button with map tool or NULL if no button is associated.

Definition at line 137 of file qgsmaptool.cpp.

◆ canvas()

QgsMapCanvas * QgsMapTool::canvas ( )

returns pointer to the tool's map canvas

Definition at line 189 of file qgsmaptool.cpp.

◆ canvasDoubleClickEvent()

void QgsMapTool::canvasDoubleClickEvent ( QgsMapMouseEvent e)
virtual

Mouse double-click event for overriding. Default implementation does nothing.

Reimplemented in QgsMapToolPan.

Definition at line 153 of file qgsmaptool.cpp.

◆ canvasMoveEvent()

void QgsMapTool::canvasMoveEvent ( QgsMapMouseEvent e)
virtual

Mouse move event for overriding. Default implementation does nothing.

Reimplemented in QgsMapToolIdentify, QgsMapToolAdvancedDigitizing, QgsMapToolExtent, QgsMapToolPan, QgsMapToolZoom, and QgsMapToolEmitPoint.

Definition at line 148 of file qgsmaptool.cpp.

◆ canvasPressEvent()

void QgsMapTool::canvasPressEvent ( QgsMapMouseEvent e)
virtual

Mouse press event for overriding. Default implementation does nothing.

Reimplemented in QgsMapToolIdentify, QgsMapToolAdvancedDigitizing, QgsMapToolExtent, QgsMapToolPan, QgsMapToolZoom, and QgsMapToolEmitPoint.

Definition at line 158 of file qgsmaptool.cpp.

◆ canvasReleaseEvent()

void QgsMapTool::canvasReleaseEvent ( QgsMapMouseEvent e)
virtual

Mouse release event for overriding. Default implementation does nothing.

Reimplemented in QgsMapToolIdentify, QgsMapToolAdvancedDigitizing, QgsMapToolExtent, QgsMapToolIdentifyFeature, QgsMapToolPan, QgsMapToolZoom, and QgsMapToolEmitPoint.

Definition at line 163 of file qgsmaptool.cpp.

◆ clean()

void QgsMapTool::clean ( )
virtual

convenient method to clean members

Reimplemented in QgsMapToolCapture.

Definition at line 107 of file qgsmaptool.cpp.

◆ deactivate()

void QgsMapTool::deactivate ( )
virtual

called when map tool is being deactivated

Reimplemented in QgsMapToolIdentify, QgsMapToolAdvancedDigitizing, QgsMapToolCapture, QgsMapToolExtent, QgsMapToolZoom, and QgsMapToolPan.

Definition at line 97 of file qgsmaptool.cpp.

◆ deactivated

void QgsMapTool::deactivated ( )
signal

signal emitted once the map tool is deactivated

◆ flags()

virtual Flags QgsMapTool::flags ( ) const
inlinevirtual

Returns the flags for the map tool.

Since
QGIS 2.16

Reimplemented in QgsMapToolIdentify, QgsMapToolExtent, QgsMapToolPan, QgsMapToolEdit, QgsMapToolZoom, and QgsMapToolEmitPoint.

Definition at line 103 of file qgsmaptool.h.

◆ gestureEvent()

bool QgsMapTool::gestureEvent ( QGestureEvent *  e)
virtual

gesture event for overriding. Default implementation does nothing.

Reimplemented in QgsMapToolPan.

Definition at line 183 of file qgsmaptool.cpp.

◆ keyPressEvent()

void QgsMapTool::keyPressEvent ( QKeyEvent *  e)
virtual

Key event for overriding. Default implementation does nothing.

Reimplemented in QgsMapToolCapture, and QgsMapToolIdentifyFeature.

Definition at line 173 of file qgsmaptool.cpp.

◆ keyReleaseEvent()

void QgsMapTool::keyReleaseEvent ( QKeyEvent *  e)
virtual

Key event for overriding. Default implementation does nothing.

Definition at line 178 of file qgsmaptool.cpp.

◆ messageDiscarded

void QgsMapTool::messageDiscarded ( )
signal

emit signal to clear previous message

◆ messageEmitted

void QgsMapTool::messageEmitted ( const QString &  message,
Qgis::MessageLevel  = Qgis::Info 
)
signal

emit a message

◆ searchRadiusMM()

double QgsMapTool::searchRadiusMM ( )
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.

Since
QGIS 2.3

Definition at line 194 of file qgsmaptool.cpp.

◆ searchRadiusMU() [1/2]

double QgsMapTool::searchRadiusMU ( const QgsRenderContext context)
static

Gets search radius in map units for given context.

Used by identify, tip etc. The values is calculated from searchRadiusMM().

Since
QGIS 2.3

Definition at line 206 of file qgsmaptool.cpp.

◆ searchRadiusMU() [2/2]

double QgsMapTool::searchRadiusMU ( QgsMapCanvas canvas)
static

Gets search radius in map units for given canvas.

Used by identify, tip etc. The values is calculated from searchRadiusMM().

Since
QGIS 2.3

Definition at line 211 of file qgsmaptool.cpp.

◆ setAction()

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 112 of file qgsmaptool.cpp.

◆ setButton()

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 132 of file qgsmaptool.cpp.

◆ setCursor()

void QgsMapTool::setCursor ( const QCursor &  cursor)
virtual

Sets a user defined cursor.

Definition at line 142 of file qgsmaptool.cpp.

◆ toCanvasCoordinates()

QPoint QgsMapTool::toCanvasCoordinates ( const QgsPointXY point)
protected

transformation from map coordinates to screen coordinates

Definition at line 73 of file qgsmaptool.cpp.

◆ toLayerCoordinates() [1/3]

QgsPointXY QgsMapTool::toLayerCoordinates ( const QgsMapLayer layer,
QPoint  point 
)
protected

transformation from screen coordinates to layer's coordinates

Definition at line 52 of file qgsmaptool.cpp.

◆ toLayerCoordinates() [2/3]

QgsPointXY QgsMapTool::toLayerCoordinates ( const QgsMapLayer layer,
const QgsPointXY point 
)
protected

transformation from map coordinates to layer's coordinates

Definition at line 58 of file qgsmaptool.cpp.

◆ toLayerCoordinates() [3/3]

QgsRectangle QgsMapTool::toLayerCoordinates ( const QgsMapLayer layer,
const QgsRectangle rect 
)
protected

trnasformation of the rect from map coordinates to layer's coordinates

Definition at line 68 of file qgsmaptool.cpp.

◆ toMapCoordinates() [1/3]

QgsPointXY QgsMapTool::toMapCoordinates ( QPoint  point)
protected

transformation from screen coordinates to map coordinates

Definition at line 40 of file qgsmaptool.cpp.

◆ toMapCoordinates() [2/3]

QgsPointXY QgsMapTool::toMapCoordinates ( const QgsMapLayer layer,
const QgsPointXY point 
)
protected

transformation from layer's coordinates to map coordinates (which is different in case reprojection is used)

Definition at line 63 of file qgsmaptool.cpp.

◆ toMapCoordinates() [3/3]

QgsPoint QgsMapTool::toMapCoordinates ( const QgsMapLayer layer,
const QgsPoint point 
)
protected

transformation from layer's coordinates to map coordinates (which is different in case reprojection is used)

Note
available in Python bindings as toMapCoordinatesV2

Definition at line 45 of file qgsmaptool.cpp.

◆ toolName()

QString QgsMapTool::toolName ( )
inline

Emit map tool changed with the old tool.

Since
QGIS 2.3

Definition at line 168 of file qgsmaptool.h.

◆ wheelEvent()

void QgsMapTool::wheelEvent ( QWheelEvent *  e)
virtual

Mouse wheel event for overriding. Default implementation does nothing.

Definition at line 168 of file qgsmaptool.cpp.

Member Data Documentation

◆ mAction

QAction* QgsMapTool::mAction = nullptr
protected

optionally map tool can have pointer to action which will be used to set that action as active

Definition at line 245 of file qgsmaptool.h.

◆ mButton

QAbstractButton* QgsMapTool::mButton = nullptr
protected

optionally map tool can have pointer to a button which will be used to set that action as active

Definition at line 251 of file qgsmaptool.h.

◆ mCanvas

QgsMapCanvas* QgsMapTool::mCanvas = nullptr
protected

pointer to map canvas

Definition at line 236 of file qgsmaptool.h.

◆ mCursor

QCursor QgsMapTool::mCursor
protected

cursor used in map tool

Definition at line 239 of file qgsmaptool.h.

◆ mToolName

QString QgsMapTool::mToolName
protected

translated name of the map tool

Definition at line 254 of file qgsmaptool.h.


The documentation for this class was generated from the following files: