QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgslayoutitem.h
Go to the documentation of this file.
1/***************************************************************************
2 qgslayoutitem.h
3 -------------------
4 begin : June 2017
5 copyright : (C) 2017 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************/
8/***************************************************************************
9 * *
10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License as published by *
12 * the Free Software Foundation; either version 2 of the License, or *
13 * (at your option) any later version. *
14 * *
15 ***************************************************************************/
16
17#ifndef QGSLAYOUTITEM_H
18#define QGSLAYOUTITEM_H
19
20#include "qgis_core.h"
21#include "qgslayoutobject.h"
22#include "qgslayoutsize.h"
23#include "qgslayoutpoint.h"
24#include "qgsrendercontext.h"
27#include <QGraphicsRectItem>
28#include <QIcon>
29#include <QPainter>
30
31class QgsLayout;
32class QPainter;
34class QgsLayoutEffect;
36
43{
44 public:
45
56 QgsLayoutItemRenderContext( QgsRenderContext &context, double viewScaleFactor = 1.0 );
57
60
63
70 QgsRenderContext &renderContext() { return mRenderContext; }
71
80 const QgsRenderContext &renderContext() const { return mRenderContext; } SIP_SKIP
81
92 double viewScaleFactor() const { return mViewScaleFactor; }
93
94 private:
95
96#ifdef SIP_RUN
98#endif
99
100 QgsRenderContext &mRenderContext;
101 double mViewScaleFactor = 1.0;
102};
103
109class CORE_EXPORT QgsLayoutItem : public QgsLayoutObject, public QGraphicsRectItem, public QgsLayoutUndoObjectInterface
110{
111#ifdef SIP_RUN
112#include "qgslayoutitemgroup.h"
113#include "qgslayoutitemmap.h"
114#include "qgslayoutitempicture.h"
115#include "qgslayoutitemlabel.h"
116#include "qgslayoutitemlegend.h"
117#include "qgslayoutitempolygon.h"
120#include "qgslayoutframe.h"
121#include "qgslayoutitemshape.h"
122#include "qgslayoutitempage.h"
123#include "qgslayoutitemmarker.h"
125#endif
126
127#ifdef SIP_RUN
129
130 // FREAKKKKIIN IMPORTANT!!!!!!!!!!!
131 // IF YOU PUT SOMETHING HERE, PUT IT IN QgsLayoutObject CASTING *****ALSO******
132 // (it's not enough for it to be in only one of the places, as sip inconsistently
133 // decides which casting code to perform here)
134
135 // the conversions have to be static, because they're using multiple inheritance
136 // (seen in PyQt4 .sip files for some QGraphicsItem classes)
137 switch ( sipCpp->type() )
138 {
139 // really, these *should* use the constants from QgsLayoutItemRegistry, but sip doesn't like that!
140 case QGraphicsItem::UserType + 101:
141 sipType = sipType_QgsLayoutItemGroup;
142 *sipCppRet = static_cast<QgsLayoutItemGroup *>( sipCpp );
143 break;
144 case QGraphicsItem::UserType + 102:
145 sipType = sipType_QgsLayoutItemPage;
146 *sipCppRet = static_cast<QgsLayoutItemPage *>( sipCpp );
147 break;
148 case QGraphicsItem::UserType + 103:
149 sipType = sipType_QgsLayoutItemMap;
150 *sipCppRet = static_cast<QgsLayoutItemMap *>( sipCpp );
151 break;
152 case QGraphicsItem::UserType + 104:
153 sipType = sipType_QgsLayoutItemPicture;
154 *sipCppRet = static_cast<QgsLayoutItemPicture *>( sipCpp );
155 break;
156 case QGraphicsItem::UserType + 105:
157 sipType = sipType_QgsLayoutItemLabel;
158 *sipCppRet = static_cast<QgsLayoutItemLabel *>( sipCpp );
159 break;
160 case QGraphicsItem::UserType + 106:
161 sipType = sipType_QgsLayoutItemLegend;
162 *sipCppRet = static_cast<QgsLayoutItemLegend *>( sipCpp );
163 break;
164 case QGraphicsItem::UserType + 107:
165 sipType = sipType_QgsLayoutItemShape;
166 *sipCppRet = static_cast<QgsLayoutItemShape *>( sipCpp );
167 break;
168 case QGraphicsItem::UserType + 108:
169 sipType = sipType_QgsLayoutItemPolygon;
170 *sipCppRet = static_cast<QgsLayoutItemPolygon *>( sipCpp );
171 break;
172 case QGraphicsItem::UserType + 109:
173 sipType = sipType_QgsLayoutItemPolyline;
174 *sipCppRet = static_cast<QgsLayoutItemPolyline *>( sipCpp );
175 break;
176 case QGraphicsItem::UserType + 110:
177 sipType = sipType_QgsLayoutItemScaleBar;
178 *sipCppRet = static_cast<QgsLayoutItemScaleBar *>( sipCpp );
179 break;
180 case QGraphicsItem::UserType + 111:
181 sipType = sipType_QgsLayoutFrame;
182 *sipCppRet = static_cast<QgsLayoutFrame *>( sipCpp );
183 break;
184 case QGraphicsItem::UserType + 117:
185 sipType = sipType_QgsLayoutItemMarker;
186 *sipCppRet = static_cast<QgsLayoutItemMarker *>( sipCpp );
187 break;
188 case QGraphicsItem::UserType + 118:
189 sipType = sipType_QgsLayoutItemElevationProfile;
190 *sipCppRet = static_cast<QgsLayoutItemElevationProfile *>( sipCpp );
191 break;
192
193 // did you read that comment above? NO? Go read it now. You're about to break stuff.
194
195 default:
196 sipType = NULL;
197 }
198 SIP_END
199#endif
200
201
202 Q_OBJECT
203 Q_PROPERTY( bool locked READ isLocked WRITE setLocked NOTIFY lockChanged )
204
205 public:
206
209 {
219 };
220
223 {
224 UndoNone = -1,
225 UndoIncrementalMove = 1,
323
325 };
326
331 enum Flag SIP_ENUM_BASETYPE( IntFlag )
332 {
333 FlagOverridesPaint = 1 << 1,
334 FlagProvidesClipPath = 1 << 2,
335 FlagDisableSceneCaching = 1 << 3,
336 };
337 Q_DECLARE_FLAGS( Flags, Flag )
338
339
345 explicit QgsLayoutItem( QgsLayout *layout, bool manageZValue = true );
346
347 ~QgsLayoutItem() override;
348
353 virtual void cleanup();
354
360 int type() const override;
361
365 virtual QIcon icon() const;
366
374 virtual QString uuid() const { return mUuid; }
375
380 virtual Flags itemFlags() const;
381
388 QString id() const { return mId; }
389
396 virtual void setId( const QString &id );
397
404 virtual QString displayName() const;
405
409 virtual void setSelected( bool selected );
410
417 virtual void setVisibility( bool visible );
418
424 void setLocked( bool locked );
425
431 bool isLocked() const { return mIsLocked; }
432
438 bool isGroupMember() const;
439
445 QgsLayoutItemGroup *parentGroup() const;
446
452 void setParentGroup( QgsLayoutItemGroup *group );
453
459 {
464 };
465
472 virtual ExportLayerBehavior exportLayerBehavior() const;
473
487 Q_DECL_DEPRECATED virtual int numberExportLayers() const SIP_DEPRECATED;
488
496 virtual void startLayeredExport();
497
505 virtual void stopLayeredExport();
506
514 virtual bool nextExportPart();
515
521 struct CORE_EXPORT ExportLayerDetail
522 {
524 QString name;
525
527 QString mapLayerId;
528
533 QPainter::CompositionMode compositionMode = QPainter::CompositionMode_SourceOver;
534
539 double opacity = 1.0;
540
542 QString mapTheme;
543 };
544
552 virtual QgsLayoutItem::ExportLayerDetail exportLayerDetails() const;
553
559 void paint( QPainter *painter, const QStyleOptionGraphicsItem *itemStyle, QWidget *pWidget ) override;
560
567 void setReferencePoint( ReferencePoint point );
568
575 ReferencePoint referencePoint() const { return mReferencePoint; }
576
583 virtual QgsLayoutSize fixedSize() const { return mFixedSize; }
584
591 virtual QgsLayoutSize minimumSize() const { return mMinimumSize; }
592
607 virtual void attemptResize( const QgsLayoutSize &size, bool includesFrame = false );
608
634 virtual void attemptMove( const QgsLayoutPoint &point, bool useReferencePoint = true, bool includesFrame = false, int page = -1 );
635
651 void attemptSetSceneRect( const QRectF &rect, bool includesFrame = false );
652
665 void attemptMoveBy( double deltaX, double deltaY );
666
675 QgsLayoutPoint positionWithUnits() const { return mItemPosition; }
676
681 int page() const;
682
688 QPointF pagePos() const;
689
695 QgsLayoutPoint pagePositionWithUnits() const;
696
702 QgsLayoutSize sizeWithUnits() const { return mItemSize; }
703
714 double itemRotation() const;
715
723 bool writeXml( QDomElement &parentElement, QDomDocument &document, const QgsReadWriteContext &context ) const;
724
740 bool readXml( const QDomElement &itemElement, const QDomDocument &document, const QgsReadWriteContext &context );
741
750 virtual void finalizeRestoreFromXml();
751
752 QgsAbstractLayoutUndoCommand *createCommand( const QString &text, int id, QUndoCommand *parent = nullptr ) override SIP_FACTORY;
753
761 bool frameEnabled() const { return mFrame; }
762
770 virtual void setFrameEnabled( bool drawFrame );
771
779 void setFrameStrokeColor( const QColor &color );
780
788 QColor frameStrokeColor() const { return mFrameColor; }
789
797 virtual void setFrameStrokeWidth( QgsLayoutMeasurement width );
798
806 QgsLayoutMeasurement frameStrokeWidth() const { return mFrameWidth; }
807
815 Qt::PenJoinStyle frameJoinStyle() const { return mFrameJoinStyle; }
816
824 void setFrameJoinStyle( Qt::PenJoinStyle style );
825
831 bool hasBackground() const { return mBackground; }
832
838 void setBackgroundEnabled( bool drawBackground );
839
847 QColor backgroundColor( bool useDataDefined = true ) const;
848
854 void setBackgroundColor( const QColor &color );
855
860 QPainter::CompositionMode blendMode() const { return mBlendMode; }
861
866 void setBlendMode( QPainter::CompositionMode mode );
867
875 double itemOpacity() const { return mOpacity; }
876
884 void setItemOpacity( double opacity );
885
890 bool excludeFromExports() const;
891
896 void setExcludeFromExports( bool exclude );
897
907 virtual bool containsAdvancedEffects() const;
908
914 virtual bool requiresRasterization() const;
915
926 virtual double estimatedFrameBleed() const;
927
937 virtual QRectF rectWithFrame() const;
938
945 virtual void moveContent( double dx, double dy );
946
953 virtual void setMoveContentPreviewOffset( double dx, double dy );
954
961 virtual void zoomContent( double factor, QPointF point );
962
971 void beginCommand( const QString &commandText, UndoCommand command = UndoNone );
972
978 void endCommand();
979
985 void cancelCommand();
986
990 bool shouldDrawItem() const;
991
992 QgsExpressionContext createExpressionContext() const override;
993
1003 virtual bool accept( QgsStyleEntityVisitorInterface *visitor ) const;
1004
1013 virtual QgsGeometry clipPath() const;
1014
1020 virtual bool isRefreshing() const;
1021
1022 public slots:
1023
1028 void refresh() override;
1029
1033 virtual void invalidateCache();
1034
1038 virtual void redraw();
1039
1046 virtual void refreshDataDefinedProperty( QgsLayoutObject::DataDefinedProperty property = QgsLayoutObject::DataDefinedProperty::AllProperties );
1047
1057 virtual void setItemRotation( double rotation, bool adjustPosition = true );
1058
1064 virtual void rotateItem( double angle, QPointF transformOrigin );
1065
1066 signals:
1067
1072
1079
1083 void rotationChanged( double newRotation );
1084
1089
1096
1105
1106 protected:
1107
1113 virtual void drawDebugRect( QPainter *painter );
1114
1121 virtual void draw( QgsLayoutItemRenderContext &context ) = 0;
1122
1130 virtual QPainterPath framePath() const;
1131
1137 virtual void drawFrame( QgsRenderContext &context );
1138
1144 virtual void drawBackground( QgsRenderContext &context );
1145
1151 void drawRefreshingOverlay( QPainter *painter, const QStyleOptionGraphicsItem *itemStyle );
1152
1159 virtual void setFixedSize( const QgsLayoutSize &size );
1160
1167 virtual void setMinimumSize( const QgsLayoutSize &size );
1168
1177 virtual QSizeF applyItemSizeConstraint( QSizeF targetSize );
1178
1186 void refreshItemSize();
1187
1193 void refreshItemPosition();
1194
1205 void refreshItemRotation( QPointF *origin = nullptr );
1206
1212 void refreshOpacity( bool updateItem = true );
1213
1219 void refreshFrame( bool updateItem = true );
1220
1226 void refreshBackgroundColor( bool updateItem = true );
1227
1231 void refreshBlendMode();
1232
1237 QPointF adjustPointForReferencePosition( QPointF point, QSizeF size, ReferencePoint reference ) const;
1238
1242 QPointF positionAtReferencePoint( ReferencePoint reference ) const;
1243
1248 QgsLayoutPoint topLeftToReferencePoint( const QgsLayoutPoint &point ) const;
1249
1258 virtual bool writePropertiesToElement( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const;
1259
1275 virtual bool readPropertiesFromElement( const QDomElement &element, const QDomDocument &document, const QgsReadWriteContext &context );
1276
1280 QgsLayoutSize applyDataDefinedSize( const QgsLayoutSize &size );
1281
1282 private:
1283
1284 // true if layout manages the z value for this item
1285 bool mLayoutManagesZValue = false;
1286
1288 QString mId;
1289
1291 QString mUuid;
1292
1294 QString mTemplateUuid;
1295
1297 QString mParentGroupUuid;
1298
1299 ReferencePoint mReferencePoint = UpperLeft;
1300 QgsLayoutSize mFixedSize;
1301 QgsLayoutSize mMinimumSize;
1302
1303 QgsLayoutSize mItemSize;
1304 QgsLayoutPoint mItemPosition;
1305 double mItemRotation = 0.0;
1306
1308 bool mExcludeFromExports = false;
1309
1314 bool mEvaluatedExcludeFromExports = false;
1315
1317 QPainter::CompositionMode mBlendMode = QPainter::CompositionMode_SourceOver;
1319 QPainter::CompositionMode mEvaluatedBlendMode = QPainter::CompositionMode_SourceOver;
1320
1321 QPainter::CompositionMode blendModeForRender() const;
1322
1324 double mOpacity = 1.0;
1325 double mEvaluatedOpacity = 1.0;
1326
1327 QImage mItemCachedImage;
1328 double mItemCacheDpi = -1;
1329
1330 bool mIsLocked = false;
1331
1333 bool mFrame = false;
1335 QColor mFrameColor = QColor( 0, 0, 0 );
1339 Qt::PenJoinStyle mFrameJoinStyle = Qt::MiterJoin;
1340
1342 bool mBackground = true;
1344 QColor mBackgroundColor = QColor( 255, 255, 255 );
1345
1346 bool mBlockUndoCommands = false;
1347
1348 void initConnectionsToLayout();
1349
1351 void preparePainter( QPainter *painter );
1352 bool shouldDrawAntialiased() const;
1353 bool shouldDrawDebugRect() const;
1354 QSizeF applyMinimumSize( QSizeF targetSize );
1355 QSizeF applyFixedSize( QSizeF targetSize );
1356 QgsLayoutPoint applyDataDefinedPosition( const QgsLayoutPoint &position );
1357
1358 double applyDataDefinedRotation( double rotation );
1359 void updateStoredItemPosition();
1360 QPointF itemPositionAtReferencePoint( ReferencePoint reference, QSizeF size ) const;
1361 void setScenePos( QPointF destinationPos );
1362 bool shouldBlockUndoCommands() const;
1363
1364 void applyDataDefinedOrientation( double &width, double &height, const QgsExpressionContext &context );
1365
1366 friend class TestQgsLayoutItem;
1367 friend class TestQgsLayoutView;
1368 friend class QgsLayout;
1370 friend class QgsLayoutItemMap;
1374};
1375
1377
1378#endif //QGSLAYOUTITEM_H
1379
1380
1381
@ Millimeters
Millimeters.
Base class for commands to undo/redo layout and layout object changes.
QgsCompositionConverter class converts a QGIS 2.x composition to a QGIS 3.x layout.
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
A geometry is the spatial representation of a feature.
Definition: qgsgeometry.h:162
A QGraphicsEffect subclass used for rendering layout items onto a scene with custom composition modes...
Base class for frame items, which form a layout multiframe item.
A layout item subclass for elevation profile plots.
A container for grouping several QgsLayoutItems.
A layout item subclass for text labels.
A layout item subclass for map legends.
Layout graphical items for displaying a map.
A layout item for showing marker symbols.
Item representing the paper in a layout.
A layout item subclass that displays SVG files or raster format images (jpg, png, ....
Layout item for node based polygon shapes.
Layout item for node based polyline shapes.
Contains settings and helpers relating to a render of a QgsLayoutItem.
Definition: qgslayoutitem.h:43
QgsLayoutItemRenderContext & operator=(const QgsLayoutItemRenderContext &other)=delete
QgsLayoutItemRenderContext cannot be copied.
QgsRenderContext & renderContext()
Returns a reference to the context's render context.
Definition: qgslayoutitem.h:70
double viewScaleFactor() const
Returns the current view zoom (scale factor).
Definition: qgslayoutitem.h:92
QgsLayoutItemRenderContext(const QgsLayoutItemRenderContext &other)=delete
QgsLayoutItemRenderContext cannot be copied.
const QgsRenderContext & renderContext() const
Returns a reference to the context's render context.
Definition: qgslayoutitem.h:80
A layout item subclass for scale bars.
Layout item for basic filled shapes (e.g.
Base class for graphical items within a QgsLayout.
QgsLayoutSize sizeWithUnits() const
Returns the item's current size, including units.
UndoCommand
Layout item undo commands, used for collapsing undo commands.
@ UndoScaleBarSubdivisionsHeight
Scalebar subdivisions height.
@ UndoPictureStrokeWidth
Picture stroke width.
@ UndoLegendMinSymbolSize
Legend minimum symbol size.
@ UndoArrowHeadStrokeColor
Arrow head stroke color.
@ UndoLegendTitleSpaceBottom
Legend title space.
@ UndoScaleBarLabelBarSize
Scalebar label bar size.
@ UndoLegendIconSymbolSpace
Legend icon symbol space.
@ UndoLegendLayerFont
Legend layer font.
@ UndoShapeCornerRadius
Shape corner radius.
@ UndoLegendLineSpacing
Legend line spacing.
@ UndoLegendBoxSpace
Legend box space.
@ UndoScaleBarFillColor
Scalebar fill color.
@ UndoArrowHeadFillColor
Arrow head fill color.
@ UndoLegendRasterStrokeColor
Legend raster stroke color.
@ UndoLabelFontColor
Label color.
@ UndoScaleBarMapUnitsSegment
Scalebar map units per segment.
@ UndoElevationProfileElevationMajorGridlines
Change elevation profile elevation axis major gridlines.
@ UndoLegendTitleFont
Legend title font.
@ UndoBackgroundColor
Background color adjustment.
@ UndoLegendFontColor
Legend font color.
@ UndoElevationProfileMaximumDistance
Change elevation profile maximum distance.
@ UndoScaleBarBoxContentSpace
Scalebar box context space.
@ UndoOverviewStyle
Map overview style.
@ UndoElevationProfileChartBackground
Change elevation profile chart background.
@ UndoGridFramePenColor
Map grid frame pen color.
@ UndoMapRotation
Map rotation changed.
@ UndoOpacity
Opacity adjustment.
@ UndoIncrementalResize
Incremental resize.
@ UndoArrowHeadWidth
Arrow head width.
@ UndoElevationProfileDistanceMinorGridlines
Change elevation profile distance axis minor gridlines.
@ UndoScaleBarSegmentSize
Scalebar segment size.
@ UndoMarginTop
Top margin (since QGIS 3.30)
@ UndoLegendItemFont
Legend item font.
@ UndoLegendWmsLegendWidth
Legend WMS width.
@ UndoMapGridIntervalRange
Grid interval range.
@ UndoLegendLayerSpace
Legend layer spacing.
@ UndoLabelMargin
Label margin.
@ UndoRotation
Rotation adjustment.
@ UndoLegendColumnSpace
Legend column space.
@ UndoPictureRotation
Picture rotation.
@ UndoStrokeWidth
Stroke width adjustment.
@ UndoScaleBarFillColor2
Scalebar secondary fill color.
@ UndoScaleBarHeight
Scalebar height.
@ UndoLegendMaxSymbolSize
Legend maximum symbol size.
@ UndoArrowStrokeWidth
Arrow stroke width.
@ UndoElevationProfileChartBorder
Change elevation profile chart border.
@ UndoMapGridLineSymbol
Grid line symbol.
@ UndoZoomContent
Item content zoomed.
@ UndoScaleBarFontColor
Scalebar font color.
@ UndoElevationProfileMaximumElevation
Change elevation profile maximum elevation.
@ UndoMarginLeft
Left margin (since QGIS 3.30)
@ UndoMarginRight
Right margin (since QGIS 3.30)
@ UndoMapGridMarkerSymbol
Grid marker symbol.
@ UndoAtlasMargin
Map atlas margin changed.
@ UndoPictureFillColor
Picture fill color.
@ UndoLegendSymbolSpace
Legend symbol spacing.
@ UndoMapGridFrameFill1Color
Map grid frame fill color 1.
@ UndoElevationProfileTolerance
Change elevation profile distance tolerance.
@ UndoElevationProfileElevationFormat
Change elevation profile elevation axis number format.
@ UndoLegendSymbolWidth
Legend symbol width.
@ UndoLegendColumnCount
Legend column count.
@ UndoScaleBarSegments
Scalebar number of segments.
@ UndoLegendSymbolHeight
Legend symbol height.
@ UndoElevationProfileMinimumElevation
Change elevation profile minimum elevation.
@ UndoElevationProfileDistanceLabels
Change elevation profile distance axis label interval.
@ UndoLegendGroupSpace
Legend group spacing.
@ UndoScaleBarSubdivisions
Scalebar number of subdivisions.
@ UndoMarginBottom
Bottom margin (since QGIS 3.30)
@ UndoSetId
Change item ID.
@ UndoLegendSubgroupIndent
Legend subgroup indent.
@ UndoScaleBarLineWidth
Scalebar line width.
@ UndoElevationProfileElevationFont
Change elevation profile elevation axis number font.
@ UndoLegendRasterStrokeWidth
Legend raster stroke width.
@ UndoLegendGroupIndent
Legend group indent.
@ UndoElevationProfileDistanceFormat
Change elevation profile distance axis number format.
@ UndoMapGridAnnotationFontColor
Map frame annotation color.
@ UndoPictureNorthOffset
Picture north offset.
@ UndoElevationProfileElevationMinorGridlines
Change elevation profile elevation axis minor gridlines.
@ UndoCustomCommand
Base id for plugin based item undo commands.
@ UndoLabelFont
Label font.
@ UndoPictureStrokeColor
Picture stroke color.
@ UndoElevationProfileDistanceFont
Change elevation profile distance axis number font.
@ UndoMapAnnotationDistance
Map frame annotation distance.
@ UndoScaleBarStrokeColor
Scalebar stroke color.
@ UndoShapeStyle
Shape symbol style.
@ UndoStrokeColor
Stroke color adjustment.
@ UndoElevationProfileElevationLabels
Change elevation profile elevation axis label interval.
@ UndoScaleBarSegmentsLeft
Scalebar segments left.
@ UndoElevationProfileDistanceMajorGridlines
Change elevation profile distance axis major gridlines.
@ UndoLegendText
Legend text.
@ UndoNodeMove
Node move.
@ UndoMapGridFrameFill2Color
Map grid frame fill color 2.
@ UndoScaleBarUnitText
Scalebar unit text.
@ UndoMapLabelMargin
Margin for labels from edge of map.
@ UndoLegendWmsLegendHeight
Legend WMS height.
@ UndoElevationProfileMinimumDistance
Change elevation profile minimum distance.
@ UndoLabelText
Label text.
@ UndoLegendGroupFont
Legend group font.
void rotationChanged(double newRotation)
Emitted on item rotation change.
QgsLayoutMeasurement frameStrokeWidth() const
Returns the frame's stroke width.
bool isLocked() const
Returns true if the item is locked, and cannot be interacted with using the mouse.
double itemOpacity() const
Returns the item's opacity.
ReferencePoint referencePoint() const
Returns the reference point for positioning of the layout item.
QgsLayoutPoint positionWithUnits() const
Returns the item's current position, including units.
ReferencePoint
Fixed position reference point.
@ LowerMiddle
Lower center of item.
@ MiddleLeft
Middle left of item.
@ Middle
Center of item.
@ UpperRight
Upper right corner of item.
@ LowerLeft
Lower left corner of item.
@ UpperLeft
Upper left corner of item.
@ UpperMiddle
Upper center of item.
@ MiddleRight
Middle right of item.
@ LowerRight
Lower right corner of item.
virtual QgsLayoutSize minimumSize() const
Returns the minimum allowed size of the item, if applicable, or an empty size if item can be freely r...
Flag
Flags for controlling how an item behaves.
virtual QgsLayoutSize fixedSize() const
Returns the fixed size of the item, if applicable, or an empty size if item can be freely resized.
void sizePositionChanged()
Emitted when the item's size or position changes.
void lockChanged()
Emitted if the item's lock status changes.
virtual QString uuid() const
Returns the item identification string.
QString id() const
Returns the item's ID name.
void frameChanged()
Emitted if the item's frame style changes.
ExportLayerBehavior
Behavior of item when exporting to layered outputs.
@ ItemContainsSubLayers
Item contains multiple sublayers which must be individually exported.
@ MustPlaceInOwnLayer
Item must be placed in its own individual layer.
@ CanGroupWithItemsOfSameType
Item can only be placed on layers with other items of the same type, but multiple items of this type ...
@ CanGroupWithAnyOtherItem
Item can be placed on a layer with any other item (default behavior)
void clipPathChanged()
Emitted when the item's clipping path has changed.
bool hasBackground() const
Returns true if the item has a background.
QFlags< Flag > Flags
QColor frameStrokeColor() const
Returns the frame's stroke color.
QPainter::CompositionMode blendMode() const
Returns the item's composition blending mode.
virtual void draw(QgsLayoutItemRenderContext &context)=0
Draws the item's contents using the specified item render context.
void backgroundTaskCountChanged(int count)
Emitted whenever the number of background tasks an item is executing changes.
Qt::PenJoinStyle frameJoinStyle() const
Returns the join style used for drawing the item's frame.
This class provides a method of storing measurements for use in QGIS layouts using a variety of diffe...
A base class for objects which belong to a layout.
DataDefinedProperty
Data defined properties for different item types.
@ AllProperties
All properties for item.
This class provides a method of storing points, consisting of an x and y coordinate,...
This class provides a method of storing sizes, consisting of a width and height, for use in QGIS layo...
Definition: qgslayoutsize.h:40
Interface for layout objects which support undo/redo commands.
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
Definition: qgslayout.h:49
The class is used as a container of context for various read/write operations on other objects.
Contains information about the context of a rendering operation.
An interface for classes which can visit style entity (e.g.
double ANALYSIS_EXPORT angle(QgsPoint *p1, QgsPoint *p2, QgsPoint *p3, QgsPoint *p4)
Calculates the angle between two segments (in 2 dimension, z-values are ignored)
Definition: MathUtils.cpp:716
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
Definition: qgis_sip.h:191
#define SIP_DEPRECATED
Definition: qgis_sip.h:106
#define SIP_FORCE
Definition: qgis_sip.h:131
#define SIP_ENUM_BASETYPE(type)
Definition: qgis_sip.h:278
#define SIP_SKIP
Definition: qgis_sip.h:126
#define SIP_FACTORY
Definition: qgis_sip.h:76
#define SIP_END
Definition: qgis_sip.h:208
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsTextRendererUtils::CurvedTextFlags)
Contains details of a particular export layer relating to a layout item.
QString mapLayerId
Associated map layer ID, or an empty string if this export layer is not associated with a map layer.
QString name
User-friendly name for the export layer.
QString mapTheme
Associated map theme, or an empty string if this export layer does not need to be associated with a m...