QGIS API Documentation 3.29.0-Master (8c80f25a4f)
qgsmaptip.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsmaptip.h - Query a layer and show a maptip on the canvas
3 ---------------------
4 begin : October 2007
5 copyright : (C) 2007 by Gary Sherman
6 email : sherman @ mrcc 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#ifndef QGSMAPTIP_H
16#define QGSMAPTIP_H
17
18class QgsMapLayer;
19class QgsMapCanvas;
20class QPoint;
21class QString;
22class QgsPointXY;
23class QgsVectorLayer;
24class QgsWebView;
25
26#include <QWidget>
27#include <QUrl>
28#include <QTimer>
29#include "qgsfeature.h"
30#include "qgis_gui.h"
31
52class GUI_EXPORT QgsMapTip : public QWidget
53{
54 Q_OBJECT
55 public:
56
60 QgsMapTip();
61
72 void showMapTip( QgsMapLayer *thepLayer,
73 QgsPointXY &mapPosition,
74 QPoint &pixelPosition,
75 QgsMapCanvas *mpMapCanvas );
76
82 void clear( QgsMapCanvas *mpMapCanvas = nullptr, int msDelay = 0 );
83
87 void applyFontSettings();
88
89 private slots:
90 void onLinkClicked( const QUrl &url );
91 void resizeContent();
92
93 private:
94 // Fetch the feature to use for the maptip text.
95 // Only the first feature in the search radius is used
96 QString fetchFeature( QgsMapLayer *thepLayer,
97 QgsPointXY &mapPosition,
98 QgsMapCanvas *mapCanvas );
99
100 // Sample the raster and get the maptip text
101 QString fetchRaster( QgsMapLayer *layer,
102 QgsPointXY &mapPosition,
103 QgsMapCanvas *mapCanvas );
104
105 QString replaceText(
106 QString displayText, QgsVectorLayer *layer, QgsFeature &feat );
107
108 // Flag to indicate if a maptip is currently being displayed
109 bool mMapTipVisible;
110
111 QWidget *mWidget = nullptr;
112 QgsWebView *mWebView = nullptr;
113
114 QString mFontFamily;
115 int mFontSize = 8;
116
117 const int MARGIN_VALUE = 5;
118
119 QTimer mDelayedClearTimer;
120};
121#endif // QGSMAPTIP_H
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition: qgsfeature.h:56
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:90
Base class for all map layer types.
Definition: qgsmaplayer.h:73
A maptip is a class to display a tip on a map canvas when a mouse is hovered over a feature.
Definition: qgsmaptip.h:53
A class to represent a 2D point.
Definition: qgspointxy.h:59
Represents a vector layer which manages a vector based data sets.
The QgsWebView class is a collection of stubs to mimic the API of QWebView on systems where the real ...
Definition: qgswebview.h:66