QGIS API Documentation  3.23.0-Master (eb871beae0)
qgsvertexmarker.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsvertexmarker.h - canvas item which shows a simple vertex marker
3  ---------------------
4  begin : February 2006
5  copyright : (C) 2006 by Martin Dobias
6  email : wonder.sk at gmail dot com
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #ifndef QGSVERTEXMARKER_H
17 #define QGSVERTEXMARKER_H
18 
19 #include "qgsmapcanvasitem.h"
20 #include "qgspointxy.h"
21 #include "qgis_gui.h"
22 
23 class QPainter;
24 
25 #ifdef SIP_RUN
26 % ModuleHeaderCode
27 // For ConvertToSubClassCode.
28 #include <qgsvertexmarker.h>
29 % End
30 #endif
31 
36 class GUI_EXPORT QgsVertexMarker : public QgsMapCanvasItem
37 {
38 
39 #ifdef SIP_RUN
41  if ( dynamic_cast<QgsVertexMarker *>( sipCpp ) )
42  sipType = sipType_QgsVertexMarker;
43  else
44  sipType = nullptr;
45  SIP_END
46 #endif
47  public:
48 
50  enum IconType
51  {
61  };
62 
64 
70  void setCenter( const QgsPointXY &point );
71 
78  QgsPointXY center() const { return mCenter; }
79 
80  void setIconType( int iconType );
81 
82  void setIconSize( int iconSize );
83 
89  void setColor( const QColor &color );
90 
97  QColor color() const { return mColor; }
98 
106  void setFillColor( const QColor &color );
107 
115  QColor fillColor() const { return mFillColor; }
116 
117  void setPenWidth( int width );
118 
119  void paint( QPainter *p ) override;
120 
121  QRectF boundingRect() const override;
122 
123  void updatePosition() override;
124 
125  private:
126 
127  void updatePath();
128 
130  int mIconType = ICON_X;
131 
132  QPainterPath mPath;
133 
135  int mIconSize = 10;
136 
138  QgsPointXY mCenter;
139 
141  QColor mColor = QColor( 255, 0, 0 );
142 
144  int mPenWidth = 1;
145 
147  QColor mFillColor = QColor( 0, 0, 0, 0 );
148 
149 };
150 
151 #endif
An abstract class for items that can be placed on the map canvas.
QRectF boundingRect() const override
virtual void paint(QPainter *painter)=0
function to be implemented by derived classes
virtual void updatePosition()
called on changed extent or resize event to update position of the item
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:89
A class to represent a 2D point.
Definition: qgspointxy.h:59
A class for marking vertices of features using e.g.
QColor color() const
Returns the stroke color for the marker.
@ ICON_TRIANGLE
Added in QGIS 3.12.
@ ICON_DOUBLE_TRIANGLE
Added in QGIS 3.0.
@ ICON_INVERTED_TRIANGLE
Added in QGIS 3.20.
@ ICON_RHOMBUS
Added in QGIS 3.12.
QgsPointXY center() const
Returns the center point of the marker, in map coordinates.
QColor fillColor() const
Returns the fill color for the marker.
QSize iconSize(bool dockableToolbar)
Returns the user-preferred size of a window's toolbar icons.
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
Definition: qgis_sip.h:177
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53
#define SIP_END
Definition: qgis_sip.h:194