QGIS API Documentation 3.34.0-Prizren (ffbdd678812)
Loading...
Searching...
No Matches
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
44{
45 public:
46
57 QgsLayoutItemRenderContext( QgsRenderContext &context, double viewScaleFactor = 1.0 );
58
61
64
71 QgsRenderContext &renderContext() { return mRenderContext; }
72
81 const QgsRenderContext &renderContext() const { return mRenderContext; } SIP_SKIP
82
93 double viewScaleFactor() const { return mViewScaleFactor; }
94
95 private:
96
97#ifdef SIP_RUN
99#endif
100
101 QgsRenderContext &mRenderContext;
102 double mViewScaleFactor = 1.0;
103};
104
111class CORE_EXPORT QgsLayoutItem : public QgsLayoutObject, public QGraphicsRectItem, public QgsLayoutUndoObjectInterface
112{
113#ifdef SIP_RUN
114#include "qgslayoutitemgroup.h"
115#include "qgslayoutitemmap.h"
116#include "qgslayoutitempicture.h"
117#include "qgslayoutitemlabel.h"
118#include "qgslayoutitemlegend.h"
119#include "qgslayoutitempolygon.h"
122#include "qgslayoutframe.h"
123#include "qgslayoutitemshape.h"
124#include "qgslayoutitempage.h"
125#include "qgslayoutitemmarker.h"
127#endif
128
129#ifdef SIP_RUN
131
132 // FREAKKKKIIN IMPORTANT!!!!!!!!!!!
133 // IF YOU PUT SOMETHING HERE, PUT IT IN QgsLayoutObject CASTING *****ALSO******
134 // (it's not enough for it to be in only one of the places, as sip inconsistently
135 // decides which casting code to perform here)
136
137 // the conversions have to be static, because they're using multiple inheritance
138 // (seen in PyQt4 .sip files for some QGraphicsItem classes)
139 switch ( sipCpp->type() )
140 {
141 // really, these *should* use the constants from QgsLayoutItemRegistry, but sip doesn't like that!
142 case QGraphicsItem::UserType + 101:
143 sipType = sipType_QgsLayoutItemGroup;
144 *sipCppRet = static_cast<QgsLayoutItemGroup *>( sipCpp );
145 break;
146 case QGraphicsItem::UserType + 102:
147 sipType = sipType_QgsLayoutItemPage;
148 *sipCppRet = static_cast<QgsLayoutItemPage *>( sipCpp );
149 break;
150 case QGraphicsItem::UserType + 103:
151 sipType = sipType_QgsLayoutItemMap;
152 *sipCppRet = static_cast<QgsLayoutItemMap *>( sipCpp );
153 break;
154 case QGraphicsItem::UserType + 104:
155 sipType = sipType_QgsLayoutItemPicture;
156 *sipCppRet = static_cast<QgsLayoutItemPicture *>( sipCpp );
157 break;
158 case QGraphicsItem::UserType + 105:
159 sipType = sipType_QgsLayoutItemLabel;
160 *sipCppRet = static_cast<QgsLayoutItemLabel *>( sipCpp );
161 break;
162 case QGraphicsItem::UserType + 106:
163 sipType = sipType_QgsLayoutItemLegend;
164 *sipCppRet = static_cast<QgsLayoutItemLegend *>( sipCpp );
165 break;
166 case QGraphicsItem::UserType + 107:
167 sipType = sipType_QgsLayoutItemShape;
168 *sipCppRet = static_cast<QgsLayoutItemShape *>( sipCpp );
169 break;
170 case QGraphicsItem::UserType + 108:
171 sipType = sipType_QgsLayoutItemPolygon;
172 *sipCppRet = static_cast<QgsLayoutItemPolygon *>( sipCpp );
173 break;
174 case QGraphicsItem::UserType + 109:
175 sipType = sipType_QgsLayoutItemPolyline;
176 *sipCppRet = static_cast<QgsLayoutItemPolyline *>( sipCpp );
177 break;
178 case QGraphicsItem::UserType + 110:
179 sipType = sipType_QgsLayoutItemScaleBar;
180 *sipCppRet = static_cast<QgsLayoutItemScaleBar *>( sipCpp );
181 break;
182 case QGraphicsItem::UserType + 111:
183 sipType = sipType_QgsLayoutFrame;
184 *sipCppRet = static_cast<QgsLayoutFrame *>( sipCpp );
185 break;
186 case QGraphicsItem::UserType + 117:
187 sipType = sipType_QgsLayoutItemMarker;
188 *sipCppRet = static_cast<QgsLayoutItemMarker *>( sipCpp );
189 break;
190 case QGraphicsItem::UserType + 118:
191 sipType = sipType_QgsLayoutItemElevationProfile;
192 *sipCppRet = static_cast<QgsLayoutItemElevationProfile *>( sipCpp );
193 break;
194
195 // did you read that comment above? NO? Go read it now. You're about to break stuff.
196
197 default:
198 sipType = NULL;
199 }
200 SIP_END
201#endif
202
203
204 Q_OBJECT
205 Q_PROPERTY( bool locked READ isLocked WRITE setLocked NOTIFY lockChanged )
206
207 public:
208
222
225 {
226 UndoNone = -1,
227 UndoIncrementalMove = 1,
325
327 };
328
333 enum Flag
334 {
335 FlagOverridesPaint = 1 << 1,
336 FlagProvidesClipPath = 1 << 2,
337 FlagDisableSceneCaching = 1 << 3,
338 };
339 Q_DECLARE_FLAGS( Flags, Flag )
340
341
347 explicit QgsLayoutItem( QgsLayout *layout, bool manageZValue = true );
348
349 ~QgsLayoutItem() override;
350
355 virtual void cleanup();
356
362 int type() const override;
363
367 virtual QIcon icon() const;
368
376 virtual QString uuid() const { return mUuid; }
377
382 virtual Flags itemFlags() const;
383
390 QString id() const { return mId; }
391
398 virtual void setId( const QString &id );
399
406 virtual QString displayName() const;
407
411 virtual void setSelected( bool selected );
412
419 virtual void setVisibility( bool visible );
420
426 void setLocked( bool locked );
427
433 bool isLocked() const { return mIsLocked; }
434
440 bool isGroupMember() const;
441
447 QgsLayoutItemGroup *parentGroup() const;
448
454 void setParentGroup( QgsLayoutItemGroup *group );
455
467
474 virtual ExportLayerBehavior exportLayerBehavior() const;
475
489 Q_DECL_DEPRECATED virtual int numberExportLayers() const SIP_DEPRECATED;
490
498 virtual void startLayeredExport();
499
507 virtual void stopLayeredExport();
508
516 virtual bool nextExportPart();
517
523 struct CORE_EXPORT ExportLayerDetail
524 {
526 QString name;
527
529 QString mapLayerId;
530
535 QPainter::CompositionMode compositionMode = QPainter::CompositionMode_SourceOver;
536
541 double opacity = 1.0;
542
544 QString mapTheme;
545 };
546
554 virtual QgsLayoutItem::ExportLayerDetail exportLayerDetails() const;
555
561 void paint( QPainter *painter, const QStyleOptionGraphicsItem *itemStyle, QWidget *pWidget ) override;
562
569 void setReferencePoint( ReferencePoint point );
570
577 ReferencePoint referencePoint() const { return mReferencePoint; }
578
585 virtual QgsLayoutSize fixedSize() const { return mFixedSize; }
586
593 virtual QgsLayoutSize minimumSize() const { return mMinimumSize; }
594
609 virtual void attemptResize( const QgsLayoutSize &size, bool includesFrame = false );
610
636 virtual void attemptMove( const QgsLayoutPoint &point, bool useReferencePoint = true, bool includesFrame = false, int page = -1 );
637
653 void attemptSetSceneRect( const QRectF &rect, bool includesFrame = false );
654
667 void attemptMoveBy( double deltaX, double deltaY );
668
677 QgsLayoutPoint positionWithUnits() const { return mItemPosition; }
678
683 int page() const;
684
690 QPointF pagePos() const;
691
697 QgsLayoutPoint pagePositionWithUnits() const;
698
704 QgsLayoutSize sizeWithUnits() const { return mItemSize; }
705
716 double itemRotation() const;
717
725 bool writeXml( QDomElement &parentElement, QDomDocument &document, const QgsReadWriteContext &context ) const;
726
742 bool readXml( const QDomElement &itemElement, const QDomDocument &document, const QgsReadWriteContext &context );
743
752 virtual void finalizeRestoreFromXml();
753
754 QgsAbstractLayoutUndoCommand *createCommand( const QString &text, int id, QUndoCommand *parent = nullptr ) override SIP_FACTORY;
755
763 bool frameEnabled() const { return mFrame; }
764
772 virtual void setFrameEnabled( bool drawFrame );
773
781 void setFrameStrokeColor( const QColor &color );
782
790 QColor frameStrokeColor() const { return mFrameColor; }
791
799 virtual void setFrameStrokeWidth( QgsLayoutMeasurement width );
800
808 QgsLayoutMeasurement frameStrokeWidth() const { return mFrameWidth; }
809
817 Qt::PenJoinStyle frameJoinStyle() const { return mFrameJoinStyle; }
818
826 void setFrameJoinStyle( Qt::PenJoinStyle style );
827
833 bool hasBackground() const { return mBackground; }
834
840 void setBackgroundEnabled( bool drawBackground );
841
849 QColor backgroundColor( bool useDataDefined = true ) const;
850
856 void setBackgroundColor( const QColor &color );
857
862 QPainter::CompositionMode blendMode() const { return mBlendMode; }
863
868 void setBlendMode( QPainter::CompositionMode mode );
869
877 double itemOpacity() const { return mOpacity; }
878
886 void setItemOpacity( double opacity );
887
892 bool excludeFromExports() const;
893
898 void setExcludeFromExports( bool exclude );
899
909 virtual bool containsAdvancedEffects() const;
910
916 virtual bool requiresRasterization() const;
917
928 virtual double estimatedFrameBleed() const;
929
939 virtual QRectF rectWithFrame() const;
940
947 virtual void moveContent( double dx, double dy );
948
955 virtual void setMoveContentPreviewOffset( double dx, double dy );
956
963 virtual void zoomContent( double factor, QPointF point );
964
973 void beginCommand( const QString &commandText, UndoCommand command = UndoNone );
974
980 void endCommand();
981
987 void cancelCommand();
988
992 bool shouldDrawItem() const;
993
994 QgsExpressionContext createExpressionContext() const override;
995
1005 virtual bool accept( QgsStyleEntityVisitorInterface *visitor ) const;
1006
1015 virtual QgsGeometry clipPath() const;
1016
1022 virtual bool isRefreshing() const;
1023
1024 public slots:
1025
1030 void refresh() override;
1031
1035 virtual void invalidateCache();
1036
1040 virtual void redraw();
1041
1048 virtual void refreshDataDefinedProperty( QgsLayoutObject::DataDefinedProperty property = QgsLayoutObject::AllProperties );
1049
1059 virtual void setItemRotation( double rotation, bool adjustPosition = true );
1060
1066 virtual void rotateItem( double angle, QPointF transformOrigin );
1067
1068 signals:
1069
1074
1081
1085 void rotationChanged( double newRotation );
1086
1091
1098
1107
1108 protected:
1109
1115 virtual void drawDebugRect( QPainter *painter );
1116
1123 virtual void draw( QgsLayoutItemRenderContext &context ) = 0;
1124
1132 virtual QPainterPath framePath() const;
1133
1139 virtual void drawFrame( QgsRenderContext &context );
1140
1146 virtual void drawBackground( QgsRenderContext &context );
1147
1153 void drawRefreshingOverlay( QPainter *painter, const QStyleOptionGraphicsItem *itemStyle );
1154
1161 virtual void setFixedSize( const QgsLayoutSize &size );
1162
1169 virtual void setMinimumSize( const QgsLayoutSize &size );
1170
1179 virtual QSizeF applyItemSizeConstraint( QSizeF targetSize );
1180
1188 void refreshItemSize();
1189
1195 void refreshItemPosition();
1196
1207 void refreshItemRotation( QPointF *origin = nullptr );
1208
1214 void refreshOpacity( bool updateItem = true );
1215
1221 void refreshFrame( bool updateItem = true );
1222
1228 void refreshBackgroundColor( bool updateItem = true );
1229
1233 void refreshBlendMode();
1234
1239 QPointF adjustPointForReferencePosition( QPointF point, QSizeF size, ReferencePoint reference ) const;
1240
1244 QPointF positionAtReferencePoint( ReferencePoint reference ) const;
1245
1250 QgsLayoutPoint topLeftToReferencePoint( const QgsLayoutPoint &point ) const;
1251
1260 virtual bool writePropertiesToElement( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const;
1261
1277 virtual bool readPropertiesFromElement( const QDomElement &element, const QDomDocument &document, const QgsReadWriteContext &context );
1278
1282 QgsLayoutSize applyDataDefinedSize( const QgsLayoutSize &size );
1283
1284 private:
1285
1286 // true if layout manages the z value for this item
1287 bool mLayoutManagesZValue = false;
1288
1290 QString mId;
1291
1293 QString mUuid;
1294
1296 QString mTemplateUuid;
1297
1299 QString mParentGroupUuid;
1300
1301 ReferencePoint mReferencePoint = UpperLeft;
1302 QgsLayoutSize mFixedSize;
1303 QgsLayoutSize mMinimumSize;
1304
1305 QgsLayoutSize mItemSize;
1306 QgsLayoutPoint mItemPosition;
1307 double mItemRotation = 0.0;
1308
1310 bool mExcludeFromExports = false;
1311
1316 bool mEvaluatedExcludeFromExports = false;
1317
1319 QPainter::CompositionMode mBlendMode = QPainter::CompositionMode_SourceOver;
1321 QPainter::CompositionMode mEvaluatedBlendMode = QPainter::CompositionMode_SourceOver;
1322
1323 QPainter::CompositionMode blendModeForRender() const;
1324
1326 double mOpacity = 1.0;
1327 double mEvaluatedOpacity = 1.0;
1328
1329 QImage mItemCachedImage;
1330 double mItemCacheDpi = -1;
1331
1332 bool mIsLocked = false;
1333
1335 bool mFrame = false;
1337 QColor mFrameColor = QColor( 0, 0, 0 );
1341 Qt::PenJoinStyle mFrameJoinStyle = Qt::MiterJoin;
1342
1344 bool mBackground = true;
1346 QColor mBackgroundColor = QColor( 255, 255, 255 );
1347
1348 bool mBlockUndoCommands = false;
1349
1350 void initConnectionsToLayout();
1351
1353 void preparePainter( QPainter *painter );
1354 bool shouldDrawAntialiased() const;
1355 bool shouldDrawDebugRect() const;
1356 QSizeF applyMinimumSize( QSizeF targetSize );
1357 QSizeF applyFixedSize( QSizeF targetSize );
1358 QgsLayoutPoint applyDataDefinedPosition( const QgsLayoutPoint &position );
1359
1360 double applyDataDefinedRotation( double rotation );
1361 void updateStoredItemPosition();
1362 QPointF itemPositionAtReferencePoint( ReferencePoint reference, QSizeF size ) const;
1363 void setScenePos( QPointF destinationPos );
1364 bool shouldBlockUndoCommands() const;
1365
1366 void applyDataDefinedOrientation( double &width, double &height, const QgsExpressionContext &context );
1367
1368 friend class TestQgsLayoutItem;
1369 friend class TestQgsLayoutView;
1370 friend class QgsLayout;
1372 friend class QgsLayoutItemMap;
1376};
1377
1378Q_DECLARE_OPERATORS_FOR_FLAGS( QgsLayoutItem::Flags )
1379
1380#endif //QGSLAYOUTITEM_H
1381
1382
1383
@ 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.
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.
QgsLayoutItemRenderContext & operator=(const QgsLayoutItemRenderContext &other)=delete
QgsLayoutItemRenderContext cannot be copied.
QgsRenderContext & renderContext()
Returns a reference to the context's render context.
double viewScaleFactor() const
Returns the current view zoom (scale factor).
QgsLayoutItemRenderContext(const QgsLayoutItemRenderContext &other)=delete
QgsLayoutItemRenderContext cannot be copied.
const QgsRenderContext & renderContext() const
Returns a reference to the context's render context.
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.
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...
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:50
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.
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
Definition qgis_sip.h:186
#define SIP_DEPRECATED
Definition qgis_sip.h:106
#define SIP_FORCE
Definition qgis_sip.h:131
#define SIP_SKIP
Definition qgis_sip.h:126
#define SIP_FACTORY
Definition qgis_sip.h:76
#define SIP_END
Definition qgis_sip.h:203
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...