QGIS API Documentation 4.0.0-Norrköping (1ddcee3d0e4)
Loading...
Searching...
No Matches
qgslayoutitemlabel.h
Go to the documentation of this file.
1/***************************************************************************
2 qgslayoutitemlabel.h
3 -------------------
4 begin : October 2017
5 copyright : (C) 2017 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17#ifndef QGSLAYOUTITEMLABEL_H
18#define QGSLAYOUTITEMLABEL_H
19
20#include "qgis_core.h"
21#include "qgslayoutitem.h"
22#include "qgstextformat.h"
23
24#include <QFont>
25#include <QUrl>
26
27class QgsVectorLayer;
28class QgsFeature;
29class QgsDistanceArea;
30
35class CORE_EXPORT QgsLayoutItemLabel : public QgsLayoutItem
36{
37 Q_OBJECT
38
39 public:
41 enum Mode
42 {
45 };
46
51
57 static QgsLayoutItemLabel *create( QgsLayout *layout ) SIP_FACTORY;
58
59 int type() const override;
60 QIcon icon() const override;
61 //Overridden to contain part of label's text
62 QString displayName() const override;
63
68 void adjustSizeToText();
69
78 void adjustSizeToText( QgsLayoutItem::ReferencePoint referencePoint );
79
84 QSizeF sizeForText() const;
85
91 QString text() const { return mText; }
92
97 void setText( const QString &text );
98
104 QString currentText() const;
105
110 Mode mode() const { return mMode; }
111
117 void setMode( Mode mode );
118
124 Q_DECL_DEPRECATED QFont font() const SIP_DEPRECATED;
125
131 Q_DECL_DEPRECATED void setFont( const QFont &font ) SIP_DEPRECATED;
132
138 Qt::AlignmentFlag vAlign() const { return mVAlignment; }
139
145 Qt::AlignmentFlag hAlign() const { return mHAlignment; }
146
152 void setHAlign( Qt::AlignmentFlag alignment )
153 {
154 mHAlignment = alignment;
156 }
157
163 void setVAlign( Qt::AlignmentFlag alignment )
164 {
165 mVAlignment = alignment;
167 }
168
175 double marginX() const { return mMarginX; }
176
183 double marginY() const { return mMarginY; }
184
196 void setMargin( double margin );
197
204 void setMarginX( double margin );
205
212 void setMarginY( double margin );
213
219 Q_DECL_DEPRECATED void setFontColor( const QColor &color ) SIP_DEPRECATED { mFormat.setColor( color ); }
220
226 Q_DECL_DEPRECATED QColor fontColor() const SIP_DEPRECATED { return mFormat.color(); }
227
228 // In case of negative margins, the bounding rect may be larger than the
229 // label's frame
230 QRectF boundingRect() const override;
231 void setFrameEnabled( bool drawFrame ) override;
232 void setFrameStrokeWidth( QgsLayoutMeasurement strokeWidth ) override;
233
239 QgsTextFormat textFormat() const;
240
246 void setTextFormat( const QgsTextFormat &format );
247
248 public slots:
249
250 void refresh() override;
251
258 void convertToStaticText();
259
260 protected:
261 void draw( QgsLayoutItemRenderContext &context ) override;
262 bool writePropertiesToElement( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const override;
263 bool readPropertiesFromElement( const QDomElement &element, const QDomDocument &document, const QgsReadWriteContext &context ) override;
264
265 private slots:
266
267 void refreshExpressionContext();
269 void updateBoundingRect();
270
271 private:
272 // Text
273 QString mText;
274
275 Mode mMode = ModeFont;
276 double mHtmlUnitsToLayoutUnits = 1.0;
277 double htmlUnitsToLayoutUnits(); //calculate scale factor
278
280 void itemShiftAdjustSize( double newWidth, double newHeight, double &xShift, double &yShift ) const;
281
283 void contentChanged();
284
285 QgsTextFormat mFormat;
286
288 double mMarginX = 0.0;
290 double mMarginY = 0.0;
291
293 Qt::AlignmentFlag mHAlignment = Qt::AlignLeft;
294
296 Qt::AlignmentFlag mVAlignment = Qt::AlignTop;
297
299 void replaceDateText( QString &text ) const;
300
302 QFont createDefaultFont() const;
303
305 QUrl createStylesheetUrl() const;
306
308 QString createStylesheet() const;
309
310 std::unique_ptr< QgsDistanceArea > mDistanceArea;
311
312 QRectF mCurrentRectangle;
313
314 friend class QgsLayoutItemHtml;
315};
316
317#endif //QGSLAYOUTITEMLABEL_H
A general purpose distance and area calculator, capable of performing ellipsoid based calculations.
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition qgsfeature.h:60
A layout item subclass for text labels.
Mode mode() const
Returns the label's current mode.
void setHAlign(Qt::AlignmentFlag alignment)
Sets the horizontal alignment of the label.
Q_DECL_DEPRECATED QColor fontColor() const
Returns the label font color.
double marginX() const
Returns the horizontal margin between the edge of the frame and the label contents,...
Qt::AlignmentFlag vAlign() const
Returns for the vertical alignment of the label.
QgsLayoutItemLabel(QgsLayout *layout)
Constructor for QgsLayoutItemLabel, with the specified parent layout.
friend class QgsLayoutItemHtml
double marginY() const
Returns the vertical margin between the edge of the frame and the label contents, in layout units.
QString text() const
Returns the label's preset text.
Q_DECL_DEPRECATED void setFontColor(const QColor &color)
Sets the label font color.
void setVAlign(Qt::AlignmentFlag alignment)
Sets for the vertical alignment of the label.
Qt::AlignmentFlag hAlign() const
Returns the horizontal alignment of the label.
@ ModeHtml
Label displays rendered HTML content.
@ ModeFont
Label displays text rendered using a single font.
Contains settings and helpers relating to a render of a QgsLayoutItem.
virtual void setFrameStrokeWidth(QgsLayoutMeasurement width)
Sets the frame stroke width.
QgsLayoutItem(QgsLayout *layout, bool manageZValue=true)
Constructor for QgsLayoutItem, with the specified parent layout.
virtual QIcon icon() const
Returns the item's icon.
ReferencePoint
Fixed position reference point.
virtual bool writePropertiesToElement(QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context) const
Stores item state within an XML DOM element.
virtual void setFrameEnabled(bool drawFrame)
Sets whether this item has a frame drawn around it or not.
int type() const override
Returns a unique graphics item type identifier.
virtual QString displayName() const
Gets item display name.
virtual void invalidateCache()
Forces a deferred update of any cached image the item uses.
virtual bool readPropertiesFromElement(const QDomElement &element, const QDomDocument &document, const QgsReadWriteContext &context)
Sets item state from a DOM element.
void refresh() override
Refreshes the item, causing a recalculation of any property overrides and recalculation of its positi...
virtual void draw(QgsLayoutItemRenderContext &context)=0
Draws the item's contents using the specified item render context.
Provides a method of storing measurements for use in QGIS layouts using a variety of different measur...
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
Definition qgslayout.h:50
A container for the context for various read/write operations on objects.
Container for all settings relating to text rendering.
Represents a vector layer which manages a vector based dataset.
#define SIP_DEPRECATED
Definition qgis_sip.h:113
#define SIP_FACTORY
Definition qgis_sip.h:83