QGIS API Documentation 3.41.0-Master (45a0abf3bec)
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
43{
44 public:
45
56 QgsLayoutItemRenderContext( QgsRenderContext &context, double viewScaleFactor = 1.0 );
57
60
67 QgsRenderContext &renderContext() { return mRenderContext; }
68
77 const QgsRenderContext &renderContext() const { return mRenderContext; } SIP_SKIP
78
89 double viewScaleFactor() const { return mViewScaleFactor; }
90
91 private:
92
93#ifdef SIP_RUN
95#endif
96
97 QgsRenderContext &mRenderContext;
98 double mViewScaleFactor = 1.0;
99};
100
106class CORE_EXPORT QgsLayoutItem : public QgsLayoutObject, public QGraphicsRectItem, public QgsLayoutUndoObjectInterface
107{
108#ifdef SIP_RUN
109#include "qgslayoutitemgroup.h"
110#include "qgslayoutitemmap.h"
111#include "qgslayoutitempicture.h"
112#include "qgslayoutitemlabel.h"
113#include "qgslayoutitemlegend.h"
114#include "qgslayoutitempolygon.h"
117#include "qgslayoutframe.h"
118#include "qgslayoutitemshape.h"
119#include "qgslayoutitempage.h"
120#include "qgslayoutitemmarker.h"
122#endif
123
124#ifdef SIP_RUN
126
127 // FREAKKKKIIN IMPORTANT!!!!!!!!!!!
128 // IF YOU PUT SOMETHING HERE, PUT IT IN QgsLayoutObject CASTING *****ALSO******
129 // (it's not enough for it to be in only one of the places, as sip inconsistently
130 // decides which casting code to perform here)
131
132 // the conversions have to be static, because they're using multiple inheritance
133 // (seen in PyQt4 .sip files for some QGraphicsItem classes)
134 switch ( sipCpp->type() )
135 {
136 // really, these *should* use the constants from QgsLayoutItemRegistry, but sip doesn't like that!
137 case QGraphicsItem::UserType + 101:
138 sipType = sipType_QgsLayoutItemGroup;
139 *sipCppRet = static_cast<QgsLayoutItemGroup *>( sipCpp );
140 break;
141 case QGraphicsItem::UserType + 102:
142 sipType = sipType_QgsLayoutItemPage;
143 *sipCppRet = static_cast<QgsLayoutItemPage *>( sipCpp );
144 break;
145 case QGraphicsItem::UserType + 103:
146 sipType = sipType_QgsLayoutItemMap;
147 *sipCppRet = static_cast<QgsLayoutItemMap *>( sipCpp );
148 break;
149 case QGraphicsItem::UserType + 104:
150 sipType = sipType_QgsLayoutItemPicture;
151 *sipCppRet = static_cast<QgsLayoutItemPicture *>( sipCpp );
152 break;
153 case QGraphicsItem::UserType + 105:
154 sipType = sipType_QgsLayoutItemLabel;
155 *sipCppRet = static_cast<QgsLayoutItemLabel *>( sipCpp );
156 break;
157 case QGraphicsItem::UserType + 106:
158 sipType = sipType_QgsLayoutItemLegend;
159 *sipCppRet = static_cast<QgsLayoutItemLegend *>( sipCpp );
160 break;
161 case QGraphicsItem::UserType + 107:
162 sipType = sipType_QgsLayoutItemShape;
163 *sipCppRet = static_cast<QgsLayoutItemShape *>( sipCpp );
164 break;
165 case QGraphicsItem::UserType + 108:
166 sipType = sipType_QgsLayoutItemPolygon;
167 *sipCppRet = static_cast<QgsLayoutItemPolygon *>( sipCpp );
168 break;
169 case QGraphicsItem::UserType + 109:
170 sipType = sipType_QgsLayoutItemPolyline;
171 *sipCppRet = static_cast<QgsLayoutItemPolyline *>( sipCpp );
172 break;
173 case QGraphicsItem::UserType + 110:
174 sipType = sipType_QgsLayoutItemScaleBar;
175 *sipCppRet = static_cast<QgsLayoutItemScaleBar *>( sipCpp );
176 break;
177 case QGraphicsItem::UserType + 111:
178 sipType = sipType_QgsLayoutFrame;
179 *sipCppRet = static_cast<QgsLayoutFrame *>( sipCpp );
180 break;
181 case QGraphicsItem::UserType + 117:
182 sipType = sipType_QgsLayoutItemMarker;
183 *sipCppRet = static_cast<QgsLayoutItemMarker *>( sipCpp );
184 break;
185 case QGraphicsItem::UserType + 118:
186 sipType = sipType_QgsLayoutItemElevationProfile;
187 *sipCppRet = static_cast<QgsLayoutItemElevationProfile *>( sipCpp );
188 break;
189
190 // did you read that comment above? NO? Go read it now. You're about to break stuff.
191
192 default:
193 sipType = NULL;
194 }
195 SIP_END
196#endif
197
198
199 Q_OBJECT
200 Q_PROPERTY( bool locked READ isLocked WRITE setLocked NOTIFY lockChanged )
201
202 public:
203
217
220 {
221 UndoNone = -1,
222 UndoIncrementalMove = 1,
321
323 };
324
329 enum Flag SIP_ENUM_BASETYPE( IntFlag )
330 {
331 FlagOverridesPaint = 1 << 1,
332 FlagProvidesClipPath = 1 << 2,
333 FlagDisableSceneCaching = 1 << 3,
334 };
335 Q_DECLARE_FLAGS( Flags, Flag )
336
337
343 explicit QgsLayoutItem( QgsLayout *layout, bool manageZValue = true );
344
345 ~QgsLayoutItem() override;
346
351 virtual void cleanup();
352
358 int type() const override;
359
363 virtual QIcon icon() const;
364
372 virtual QString uuid() const { return mUuid; }
373
378 virtual Flags itemFlags() const;
379
386 QString id() const { return mId; }
387
394 virtual void setId( const QString &id );
395
402 virtual QString displayName() const;
403
407 virtual void setSelected( bool selected );
408
415 virtual void setVisibility( bool visible );
416
422 void setLocked( bool locked );
423
429 bool isLocked() const { return mIsLocked; }
430
436 bool isGroupMember() const;
437
443 QgsLayoutItemGroup *parentGroup() const;
444
450 void setParentGroup( QgsLayoutItemGroup *group );
451
463
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
549 QString groupName;
550 };
551
559 virtual QgsLayoutItem::ExportLayerDetail exportLayerDetails() const;
560
566 void paint( QPainter *painter, const QStyleOptionGraphicsItem *itemStyle, QWidget *pWidget ) override;
567
574 void setReferencePoint( ReferencePoint point );
575
582 ReferencePoint referencePoint() const { return mReferencePoint; }
583
590 virtual QgsLayoutSize fixedSize() const { return mFixedSize; }
591
598 virtual QgsLayoutSize minimumSize() const { return mMinimumSize; }
599
614 virtual void attemptResize( const QgsLayoutSize &size, bool includesFrame = false );
615
641 virtual void attemptMove( const QgsLayoutPoint &point, bool useReferencePoint = true, bool includesFrame = false, int page = -1 );
642
658 void attemptSetSceneRect( const QRectF &rect, bool includesFrame = false );
659
672 void attemptMoveBy( double deltaX, double deltaY );
673
682 QgsLayoutPoint positionWithUnits() const { return mItemPosition; }
683
688 int page() const;
689
695 QPointF pagePos() const;
696
702 QgsLayoutPoint pagePositionWithUnits() const;
703
709 QgsLayoutSize sizeWithUnits() const { return mItemSize; }
710
721 double itemRotation() const;
722
730 bool writeXml( QDomElement &parentElement, QDomDocument &document, const QgsReadWriteContext &context ) const;
731
747 bool readXml( const QDomElement &itemElement, const QDomDocument &document, const QgsReadWriteContext &context );
748
757 virtual void finalizeRestoreFromXml();
758
759 QgsAbstractLayoutUndoCommand *createCommand( const QString &text, int id, QUndoCommand *parent = nullptr ) override SIP_FACTORY;
760
768 bool frameEnabled() const { return mFrame; }
769
777 virtual void setFrameEnabled( bool drawFrame );
778
786 void setFrameStrokeColor( const QColor &color );
787
795 QColor frameStrokeColor() const { return mFrameColor; }
796
804 virtual void setFrameStrokeWidth( QgsLayoutMeasurement width );
805
813 QgsLayoutMeasurement frameStrokeWidth() const { return mFrameWidth; }
814
822 Qt::PenJoinStyle frameJoinStyle() const { return mFrameJoinStyle; }
823
831 void setFrameJoinStyle( Qt::PenJoinStyle style );
832
838 bool hasBackground() const { return mBackground; }
839
845 void setBackgroundEnabled( bool drawBackground );
846
854 QColor backgroundColor( bool useDataDefined = true ) const;
855
861 void setBackgroundColor( const QColor &color );
862
867 QPainter::CompositionMode blendMode() const { return mBlendMode; }
868
873 void setBlendMode( QPainter::CompositionMode mode );
874
882 double itemOpacity() const { return mOpacity; }
883
891 void setItemOpacity( double opacity );
892
897 bool excludeFromExports() const;
898
903 void setExcludeFromExports( bool exclude );
904
914 virtual bool containsAdvancedEffects() const;
915
921 virtual bool requiresRasterization() const;
922
933 virtual double estimatedFrameBleed() const;
934
944 virtual QRectF rectWithFrame() const;
945
952 virtual void moveContent( double dx, double dy );
953
960 virtual void setMoveContentPreviewOffset( double dx, double dy );
961
968 virtual void zoomContent( double factor, QPointF point );
969
978 void beginCommand( const QString &commandText, UndoCommand command = UndoNone );
979
985 void endCommand();
986
992 void cancelCommand();
993
997 bool shouldDrawItem() const;
998
999 QgsExpressionContext createExpressionContext() const override;
1000
1010 virtual bool accept( QgsStyleEntityVisitorInterface *visitor ) const;
1011
1020 virtual QgsGeometry clipPath() const;
1021
1027 virtual bool isRefreshing() const;
1028
1029 public slots:
1030
1035 void refresh() override;
1036
1040 virtual void invalidateCache();
1041
1045 virtual void redraw();
1046
1053 virtual void refreshDataDefinedProperty( QgsLayoutObject::DataDefinedProperty property = QgsLayoutObject::DataDefinedProperty::AllProperties );
1054
1064 virtual void setItemRotation( double rotation, bool adjustPosition = true );
1065
1071 virtual void rotateItem( double angle, QPointF transformOrigin );
1072
1073 signals:
1074
1079
1086
1090 void rotationChanged( double newRotation );
1091
1096
1103
1112
1113 protected:
1114
1120 virtual void drawDebugRect( QPainter *painter );
1121
1128 virtual void draw( QgsLayoutItemRenderContext &context ) = 0;
1129
1137 virtual QPainterPath framePath() const;
1138
1144 virtual void drawFrame( QgsRenderContext &context );
1145
1151 virtual void drawBackground( QgsRenderContext &context );
1152
1158 void drawRefreshingOverlay( QPainter *painter, const QStyleOptionGraphicsItem *itemStyle );
1159
1166 virtual void setFixedSize( const QgsLayoutSize &size );
1167
1174 virtual void setMinimumSize( const QgsLayoutSize &size );
1175
1184 virtual QSizeF applyItemSizeConstraint( QSizeF targetSize );
1185
1193 void refreshItemSize();
1194
1200 void refreshItemPosition();
1201
1212 void refreshItemRotation( QPointF *origin = nullptr );
1213
1219 void refreshOpacity( bool updateItem = true );
1220
1226 void refreshFrame( bool updateItem = true );
1227
1233 void refreshBackgroundColor( bool updateItem = true );
1234
1238 void refreshBlendMode();
1239
1244 QPointF adjustPointForReferencePosition( QPointF point, QSizeF size, ReferencePoint reference ) const;
1245
1249 QPointF positionAtReferencePoint( ReferencePoint reference ) const;
1250
1255 QgsLayoutPoint topLeftToReferencePoint( const QgsLayoutPoint &point ) const;
1256
1265 virtual bool writePropertiesToElement( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const;
1266
1282 virtual bool readPropertiesFromElement( const QDomElement &element, const QDomDocument &document, const QgsReadWriteContext &context );
1283
1287 QgsLayoutSize applyDataDefinedSize( const QgsLayoutSize &size );
1288
1289 private:
1290
1291 // true if layout manages the z value for this item
1292 bool mLayoutManagesZValue = false;
1293
1295 QString mId;
1296
1298 QString mUuid;
1299
1301 QString mTemplateUuid;
1302
1304 QString mParentGroupUuid;
1305
1306 ReferencePoint mReferencePoint = UpperLeft;
1307 QgsLayoutSize mFixedSize;
1308 QgsLayoutSize mMinimumSize;
1309
1310 QgsLayoutSize mItemSize;
1311 QgsLayoutPoint mItemPosition;
1312 double mItemRotation = 0.0;
1313
1315 bool mExcludeFromExports = false;
1316
1321 bool mEvaluatedExcludeFromExports = false;
1322
1324 QPainter::CompositionMode mBlendMode = QPainter::CompositionMode_SourceOver;
1326 QPainter::CompositionMode mEvaluatedBlendMode = QPainter::CompositionMode_SourceOver;
1327
1328 QPainter::CompositionMode blendModeForRender() const;
1329
1331 double mOpacity = 1.0;
1332 double mEvaluatedOpacity = 1.0;
1333
1334 QImage mItemCachedImage;
1335 double mItemCacheDpi = -1;
1336
1337 bool mIsLocked = false;
1338
1340 bool mFrame = false;
1342 QColor mFrameColor = QColor( 0, 0, 0 );
1346 Qt::PenJoinStyle mFrameJoinStyle = Qt::MiterJoin;
1347
1349 bool mBackground = true;
1351 QColor mBackgroundColor = QColor( 255, 255, 255 );
1352
1353 bool mBlockUndoCommands = false;
1354
1355 void initConnectionsToLayout();
1356
1358 void preparePainter( QPainter *painter );
1359 bool shouldDrawAntialiased() const;
1360 bool shouldDrawDebugRect() const;
1361 QSizeF applyMinimumSize( QSizeF targetSize );
1362 QSizeF applyFixedSize( QSizeF targetSize );
1363 QgsLayoutPoint applyDataDefinedPosition( const QgsLayoutPoint &position );
1364
1365 double applyDataDefinedRotation( double rotation );
1366 void updateStoredItemPosition();
1367 QPointF itemPositionAtReferencePoint( ReferencePoint reference, QSizeF size ) const;
1368 void setScenePos( QPointF destinationPos );
1369 bool shouldBlockUndoCommands() const;
1370
1371 void applyDataDefinedOrientation( double &width, double &height, const QgsExpressionContext &context );
1372
1373 friend class TestQgsLayoutItem;
1374 friend class TestQgsLayoutView;
1375 friend class QgsLayout;
1377 friend class QgsLayoutItemMap;
1381};
1382
1384
1385#endif //QGSLAYOUTITEM_H
1386
1387
1388
@ 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
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
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.
@ 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.
@ UndoExportLayerName
Export layer name.
@ UndoZoomContent
Item content zoomed.
@ UndoScaleBarFontColor
Scalebar font color.
@ UndoElevationProfileMaximumElevation
Change elevation profile maximum elevation.
@ UndoMarginLeft
Left margin.
@ UndoMarginRight
Right margin.
@ 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.
@ 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...
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.
#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 groupName
Associated group name, if this layer is associated with an export group.
QString mapTheme
Associated map theme, or an empty string if this export layer does not need to be associated with a m...