QGIS API Documentation  2.99.0-Master (009e47e)
Public Types | Public Member Functions | List of all members
QgsMapMouseEvent Class Reference

A QgsMapMouseEvent is the result of a user interaction with the mouse on a QgsMapCanvas. More...

#include <qgsmapmouseevent.h>

Inheritance diagram for QgsMapMouseEvent:
Inheritance graph
[legend]

Public Types

enum  SnappingMode { NoSnapping, SnapProjectConfig, SnapAllLayers }
 

Public Member Functions

 QgsMapMouseEvent (QgsMapCanvas *mapCanvas, QMouseEvent *event)
 Creates a new QgsMapMouseEvent. More...
 
 QgsMapMouseEvent (QgsMapCanvas *mapCanvas, QEvent::Type type, QPoint pos, Qt::MouseButton button=Qt::NoButton, Qt::MouseButtons buttons=Qt::NoButton, Qt::KeyboardModifiers modifiers=Qt::NoModifier)
 Creates a new QgsMapMouseEvent. More...
 
bool isSnapped () const
 Returns true if there is a snapped point cached. More...
 
QgsPointXY mapPoint () const
 mapPoint returns the point in coordinates More...
 
QgsPointLocator::Match mapPointMatch () const
 Returns the matching data from the most recently snapped point. More...
 
QgsPointXY originalMapPoint () const
 Returns the original, unmodified map point of the mouse cursor. More...
 
QPoint originalPixelPoint () const
 The unsnapped, real mouse cursor position in pixel coordinates. More...
 
QPoint pixelPoint () const
 The snapped mouse cursor in pixel coordinates. More...
 
void setMapPoint (const QgsPointXY &point)
 Set the (snapped) point this event points to in map coordinates. More...
 
QgsPointXY snapPoint (SnappingMode snappingMode)
 snapPoint will snap the points using the map canvas snapping utils configuration More...
 
QList< QgsPointXYsnapSegment (SnappingMode snappingMode, bool *snapped=nullptr, bool allLayers=false) const
 Returns the first snapped segment. More...
 

Detailed Description

A QgsMapMouseEvent is the result of a user interaction with the mouse on a QgsMapCanvas.

It is sent whenever the user moves, clicks, releases or double clicks the mouse. In addition to the coordiantes in pixel space it also knows the coordinates in the mapcanvas' CRS as well as it knows the concept of snapping.

Definition at line 34 of file qgsmapmouseevent.h.

Member Enumeration Documentation

◆ SnappingMode

Enumerator
NoSnapping 
SnapProjectConfig 

Snap according to the configuration set in the snapping settings.

SnapAllLayers 

Snap to all rendered layers (tolerance and type from defaultSettings())

Definition at line 48 of file qgsmapmouseevent.h.

Constructor & Destructor Documentation

◆ QgsMapMouseEvent() [1/2]

QgsMapMouseEvent::QgsMapMouseEvent ( QgsMapCanvas mapCanvas,
QMouseEvent *  event 
)

Creates a new QgsMapMouseEvent.

Should only be required to be called from the QgsMapCanvas.

Parameters
mapCanvasThe map canvas on which the event occurred
eventThe original mouse event

Definition at line 30 of file qgsmapmouseevent.cpp.

◆ QgsMapMouseEvent() [2/2]

QgsMapMouseEvent::QgsMapMouseEvent ( QgsMapCanvas mapCanvas,
QEvent::Type  type,
QPoint  pos,
Qt::MouseButton  button = Qt::NoButton,
Qt::MouseButtons  buttons = Qt::NoButton,
Qt::KeyboardModifiers  modifiers = Qt::NoModifier 
)

Creates a new QgsMapMouseEvent.

Should only be required to be called from the QgsMapCanvas.

Parameters
mapCanvasThe map canvas on which the event occurred
typeThe type of the event
posThe pixel position of the mouse
buttonThe pressed button
buttonsFurther buttons that are pressed
modifiersKeyboard modifiers

Definition at line 40 of file qgsmapmouseevent.cpp.

Member Function Documentation

◆ isSnapped()

bool QgsMapMouseEvent::isSnapped ( ) const
inline

Returns true if there is a snapped point cached.

Will only be useful after snapPoint has previously been called.

Returns
True if there is a snapped point cached.

Definition at line 98 of file qgsmapmouseevent.h.

◆ mapPoint()

QgsPointXY QgsMapMouseEvent::mapPoint ( ) const
inline

mapPoint returns the point in coordinates

Returns
the point in map coordinates, after snapping if requested in the event.

Definition at line 104 of file qgsmapmouseevent.h.

◆ mapPointMatch()

QgsPointLocator::Match QgsMapMouseEvent::mapPointMatch ( ) const
inline

Returns the matching data from the most recently snapped point.

Returns
the snapping data structure
Since
QGIS 2.14

Definition at line 111 of file qgsmapmouseevent.h.

◆ originalMapPoint()

QgsPointXY QgsMapMouseEvent::originalMapPoint ( ) const
inline

Returns the original, unmodified map point of the mouse cursor.

Returns
The cursor position in map coordinates.

Definition at line 126 of file qgsmapmouseevent.h.

◆ originalPixelPoint()

QPoint QgsMapMouseEvent::originalPixelPoint ( ) const
inline

The unsnapped, real mouse cursor position in pixel coordinates.

Alias to pos()

Returns
Mouse position in pixel coordinates

Definition at line 141 of file qgsmapmouseevent.h.

◆ pixelPoint()

QPoint QgsMapMouseEvent::pixelPoint ( ) const
inline

The snapped mouse cursor in pixel coordinates.

Returns
The snapped mouse cursor position in pixel coordinates.

Definition at line 133 of file qgsmapmouseevent.h.

◆ setMapPoint()

void QgsMapMouseEvent::setMapPoint ( const QgsPointXY point)

Set the (snapped) point this event points to in map coordinates.

The point in pixel coordinates will be calculated accordingly.

Parameters
pointThe point in map coordinates

Definition at line 150 of file qgsmapmouseevent.cpp.

◆ snapPoint()

QgsPointXY QgsMapMouseEvent::snapPoint ( SnappingMode  snappingMode)

snapPoint will snap the points using the map canvas snapping utils configuration

Note
if snapping did not succeeded, the map point will be reset to its original position

Definition at line 50 of file qgsmapmouseevent.cpp.

◆ snapSegment()

QList< QgsPointXY > QgsMapMouseEvent::snapSegment ( SnappingMode  snappingMode,
bool *  snapped = nullptr,
bool  allLayers = false 
) const

Returns the first snapped segment.

If the cached snapped match is a segment, it will simply return it. Otherwise it will try to snap a segment according to the event's snapping mode. In this case the cache will not be overwritten.

Parameters
snappingModeSpecify if the default project settings or all layers should be used for snapping
snappedif given, determines if a segment has been snapped
allLayersif true, override snapping mode

Definition at line 98 of file qgsmapmouseevent.cpp.


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