50 mCopyFromDockMenu =
new QMenu(
this );
51 connect( mCopyFromDockMenu, &QMenu::aboutToShow,
this, [ = ]
56 connect( mActionRefresh, &QAction::triggered,
this, [ = ]
62 mProfile->invalidateCache();
66 QToolButton *copyFromDockButton =
new QToolButton();
67 copyFromDockButton->setAutoRaise(
true );
68 copyFromDockButton->setToolTip( tr(
"Copy From Profile" ) );
69 copyFromDockButton->setMenu( mCopyFromDockMenu );
70 copyFromDockButton->setPopupMode( QToolButton::InstantPopup );
73 mDockToolbar->addWidget( copyFromDockButton );
77 mainLayout->addWidget( mItemPropertiesWidget );
82 mSpinTolerance->setClearValue( 0 );
83 connect( mSpinTolerance, qOverload< double >( &QDoubleSpinBox::valueChanged ),
this, [ = ](
double value )
85 if ( !mProfile || mBlockChanges )
89 mProfile->setTolerance( value );
90 mProfile->invalidateCache();
92 mProfile->endCommand();
95 connect( mCheckControlledByAtlas, &QCheckBox::toggled,
this, [ = ]
97 if ( !mProfile || mBlockChanges )
100 mProfile->beginCommand( tr(
"Change Profile Atlas Control" ) );
101 mProfile->setAtlasDriven( mCheckControlledByAtlas->isChecked() );
102 mProfile->invalidateCache();
104 mProfile->endCommand();
107 mSpinMinDistance->setClearValue( 0 );
108 connect( mSpinMinDistance, qOverload< double >( &QDoubleSpinBox::valueChanged ),
this, [ = ](
double value )
110 if ( !mProfile || mBlockChanges )
114 mProfile->plot()->setXMinimum( value );
115 mProfile->invalidateCache();
117 mProfile->endCommand();
120 connect( mSpinMaxDistance, qOverload< double >( &QDoubleSpinBox::valueChanged ),
this, [ = ](
double value )
122 if ( !mProfile || mBlockChanges )
126 mProfile->plot()->setXMaximum( value );
127 mProfile->invalidateCache();
129 mProfile->endCommand();
132 mSpinMinElevation->setClearValue( 0 );
133 connect( mSpinMinElevation, qOverload< double >( &QDoubleSpinBox::valueChanged ),
this, [ = ](
double value )
135 if ( !mProfile || mBlockChanges )
139 mProfile->plot()->setYMinimum( value );
140 mProfile->invalidateCache();
142 mProfile->endCommand();
145 connect( mSpinMaxElevation, qOverload< double >( &QDoubleSpinBox::valueChanged ),
this, [ = ](
double value )
147 if ( !mProfile || mBlockChanges )
151 mProfile->plot()->setYMaximum( value );
152 mProfile->invalidateCache();
154 mProfile->endCommand();
160 if ( !mProfile || mBlockChanges )
164 mProfile->plot()->xAxis().setGridMajorSymbol( mDistanceAxisMajorLinesSymbolButton->clonedSymbol<
QgsLineSymbol>() );
165 mProfile->invalidateCache();
167 mProfile->endCommand();
174 if ( !mProfile || mBlockChanges )
178 mProfile->plot()->xAxis().setGridMinorSymbol( mDistanceAxisMinorLinesSymbolButton->clonedSymbol<
QgsLineSymbol>() );
179 mProfile->invalidateCache();
181 mProfile->endCommand();
185 connect( mDistanceAxisMajorIntervalSpin, qOverload< double >( &QDoubleSpinBox::valueChanged ),
this, [ = ](
double value )
187 if ( !mProfile || mBlockChanges )
191 mProfile->plot()->xAxis().setGridIntervalMajor( value );
192 mProfile->invalidateCache();
194 mProfile->endCommand();
197 connect( mDistanceAxisMinorIntervalSpin, qOverload< double >( &QDoubleSpinBox::valueChanged ),
this, [ = ](
double value )
199 if ( !mProfile || mBlockChanges )
203 mProfile->plot()->xAxis().setGridIntervalMinor( value );
204 mProfile->invalidateCache();
206 mProfile->endCommand();
209 connect( mDistanceAxisLabelIntervalSpin, qOverload< double >( &QDoubleSpinBox::valueChanged ),
this, [ = ](
double value )
211 if ( !mProfile || mBlockChanges )
215 mProfile->plot()->xAxis().setLabelInterval( value );
216 mProfile->invalidateCache();
218 mProfile->endCommand();
224 if ( !mProfile || mBlockChanges )
228 mProfile->plot()->yAxis().setGridMajorSymbol( mElevationAxisMajorLinesSymbolButton->clonedSymbol<
QgsLineSymbol>() );
229 mProfile->invalidateCache();
231 mProfile->endCommand();
238 if ( !mProfile || mBlockChanges )
242 mProfile->plot()->yAxis().setGridMinorSymbol( mElevationAxisMinorLinesSymbolButton->clonedSymbol<
QgsLineSymbol>() );
243 mProfile->invalidateCache();
245 mProfile->endCommand();
249 connect( mElevationAxisLabelIntervalSpin, qOverload< double >( &QDoubleSpinBox::valueChanged ),
this, [ = ](
double value )
251 if ( !mProfile || mBlockChanges )
255 mProfile->plot()->yAxis().setLabelInterval( value );
256 mProfile->invalidateCache();
258 mProfile->endCommand();
261 connect( mElevationAxisMajorIntervalSpin, qOverload< double >( &QDoubleSpinBox::valueChanged ),
this, [ = ](
double value )
263 if ( !mProfile || mBlockChanges )
267 mProfile->plot()->yAxis().setGridIntervalMajor( value );
268 mProfile->invalidateCache();
270 mProfile->endCommand();
273 connect( mElevationAxisMinorIntervalSpin, qOverload< double >( &QDoubleSpinBox::valueChanged ),
this, [ = ](
double value )
275 if ( !mProfile || mBlockChanges )
279 mProfile->plot()->yAxis().setGridIntervalMinor( value );
280 mProfile->invalidateCache();
282 mProfile->endCommand();
288 if ( !mProfile || mBlockChanges )
292 mProfile->plot()->setChartBackgroundSymbol( mChartBackgroundSymbolButton->clonedSymbol<
QgsFillSymbol>() );
293 mProfile->invalidateCache();
295 mProfile->endCommand();
302 if ( !mProfile || mBlockChanges )
306 mProfile->plot()->setChartBorderSymbol( mChartBorderSymbolButton->clonedSymbol<
QgsFillSymbol>() );
307 mProfile->invalidateCache();
309 mProfile->endCommand();
313 connect( mDistanceAxisLabelFormatButton, &QPushButton::clicked,
this, [ = ]
315 if ( !mProfile || mBlockChanges )
320 widget->
setFormat( mProfile->plot()->xAxis().numericFormat() );
324 mProfile->plot()->xAxis().setNumericFormat( widget->
format() );
325 mProfile->invalidateCache();
326 mProfile->endCommand();
332 connect( mElevationAxisLabelFormatButton, &QPushButton::clicked,
this, [ = ]
334 if ( !mProfile || mBlockChanges )
339 widget->
setFormat( mProfile->plot()->yAxis().numericFormat() );
343 mProfile->plot()->yAxis().setNumericFormat( widget->
format() );
344 mProfile->invalidateCache();
345 mProfile->endCommand();
351 mDistanceAxisLabelFontButton->setDialogTitle( tr(
"Distance Label Font" ) );
352 mElevationAxisLabelFontButton->setDialogTitle( tr(
"Elevation Label Font" ) );
358 if ( !mProfile || mBlockChanges )
362 mProfile->plot()->xAxis().setTextFormat( mDistanceAxisLabelFontButton->textFormat() );
363 mProfile->invalidateCache();
364 mProfile->endCommand();
370 if ( !mProfile || mBlockChanges )
374 mProfile->plot()->yAxis().setTextFormat( mElevationAxisLabelFontButton->textFormat() );
375 mProfile->invalidateCache();
376 mProfile->endCommand();
380 mSpinLeftMargin->setClearValue( 0 );
381 connect( mSpinLeftMargin, qOverload< double >( &QDoubleSpinBox::valueChanged ),
this, [ = ](
double value )
383 if ( !mProfile || mBlockChanges )
387 QgsMargins margins = mProfile->plot()->margins();
389 mProfile->plot()->setMargins( margins );
390 mProfile->invalidateCache();
392 mProfile->endCommand();
395 mSpinRightMargin->setClearValue( 0 );
396 connect( mSpinRightMargin, qOverload< double >( &QDoubleSpinBox::valueChanged ),
this, [ = ](
double value )
398 if ( !mProfile || mBlockChanges )
402 QgsMargins margins = mProfile->plot()->margins();
404 mProfile->plot()->setMargins( margins );
405 mProfile->invalidateCache();
407 mProfile->endCommand();
410 mSpinTopMargin->setClearValue( 0 );
411 connect( mSpinTopMargin, qOverload< double >( &QDoubleSpinBox::valueChanged ),
this, [ = ](
double value )
413 if ( !mProfile || mBlockChanges )
417 QgsMargins margins = mProfile->plot()->margins();
419 mProfile->plot()->setMargins( margins );
420 mProfile->invalidateCache();
422 mProfile->endCommand();
425 mSpinBottomMargin->setClearValue( 0 );
426 connect( mSpinBottomMargin, qOverload< double >( &QDoubleSpinBox::valueChanged ),
this, [ = ](
double value )
428 if ( !mProfile || mBlockChanges )
432 QgsMargins margins = mProfile->plot()->margins();
434 mProfile->plot()->setMargins( margins );
435 mProfile->invalidateCache();
437 mProfile->endCommand();
458 QVBoxLayout *vl =
new QVBoxLayout();
459 vl->setContentsMargins( 0, 0, 0, 0 );
460 vl->addWidget( mLayerTreeView );
461 mTreeViewContainer->setLayout( vl );
467 setGuiElementValues();
469 mDistanceAxisMajorLinesSymbolButton->registerExpressionContextGenerator( mProfile );
470 mDistanceAxisMinorLinesSymbolButton->registerExpressionContextGenerator( mProfile );
471 mElevationAxisMajorLinesSymbolButton->registerExpressionContextGenerator( mProfile );
472 mElevationAxisMinorLinesSymbolButton->registerExpressionContextGenerator( mProfile );
473 mChartBackgroundSymbolButton->registerExpressionContextGenerator( mProfile );
474 mChartBorderSymbolButton->registerExpressionContextGenerator( mProfile );
475 mDistanceAxisLabelFontButton->registerExpressionContextGenerator( mProfile );
476 mElevationAxisLabelFontButton->registerExpressionContextGenerator( mProfile );
478 mDistanceAxisMajorLinesSymbolButton->setLayer(
coverageLayer() );
479 mDistanceAxisMinorLinesSymbolButton->setLayer(
coverageLayer() );
480 mElevationAxisMajorLinesSymbolButton->setLayer(
coverageLayer() );
481 mElevationAxisMinorLinesSymbolButton->setLayer(
coverageLayer() );
487 if ( mProfile->layout() )
491 mDistanceAxisMajorLinesSymbolButton->setLayer( layer );
492 mDistanceAxisMinorLinesSymbolButton->setLayer( layer );
493 mElevationAxisMajorLinesSymbolButton->setLayer( layer );
494 mElevationAxisMinorLinesSymbolButton->setLayer( layer );
495 mDistanceAxisLabelFontButton->setLayer( layer );
496 mElevationAxisLabelFontButton->setLayer( layer );
497 mChartBackgroundSymbolButton->setLayer( layer );
498 mChartBorderSymbolButton->setLayer( layer );
502 this, &QgsLayoutElevationProfileWidget::atlasLayerChanged );
508 layoutAtlasToggled( atlas->enabled() );
516 if ( mItemPropertiesWidget )
522 return mProfile->createExpressionContext();
533 mCheckControlledByAtlas->setText( tr(
"Controlled by %1" ).arg(
string == tr(
"atlas" ) ? tr(
"Atlas" ) : tr(
"Report" ) ) );
540 mProfile->setCrs( canvas->
crs() );
542 mSpinTolerance->setValue( canvas->
tolerance() );
543 mProfile->setTolerance( canvas->
tolerance() );
546 mProfile->setProfileCurve( curve->clone() );
548 mSpinMinDistance->setValue( canvas->
plot().
xMinimum() );
549 mSpinMinDistance->setClearValue( canvas->
plot().
xMinimum() );
550 mProfile->plot()->setXMinimum( canvas->
plot().
xMinimum() );
552 mSpinMaxDistance->setValue( canvas->
plot().
xMaximum() );
553 mSpinMaxDistance->setClearValue( canvas->
plot().
xMaximum() );
554 mProfile->plot()->setXMaximum( canvas->
plot().
xMaximum() );
568 mSpinMinElevation->setValue( canvas->
plot().
xMinimum() );
569 mSpinMinElevation->setClearValue( canvas->
plot().
yMinimum() );
570 mProfile->plot()->setYMinimum( canvas->
plot().
yMinimum() );
572 mSpinMaxElevation->setValue( canvas->
plot().
yMaximum() );
573 mSpinMaxElevation->setClearValue( canvas->
plot().
yMaximum() );
574 mProfile->plot()->setYMaximum( canvas->
plot().
yMaximum() );
588 QList<QgsMapLayer *> canvasLayers = canvas->
layers();
590 std::reverse( canvasLayers.begin(), canvasLayers.end() );
591 mProfile->setLayers( canvasLayers );
592 const QList<QgsLayerTreeLayer *> layers = mLayerTree->findLayers();
595 layer->setItemVisibilityChecked( mProfile->layers().contains( layer->layer() ) );
597 mLayerTree->reorderGroupLayers( mProfile->layers() );
599 mProfile->invalidateCache();
614 mProfile = qobject_cast< QgsLayoutItemElevationProfile * >( item );
615 mItemPropertiesWidget->
setItem( mProfile );
620 mDistanceAxisMajorLinesSymbolButton->registerExpressionContextGenerator( mProfile );
621 mDistanceAxisMinorLinesSymbolButton->registerExpressionContextGenerator( mProfile );
622 mElevationAxisMajorLinesSymbolButton->registerExpressionContextGenerator( mProfile );
623 mElevationAxisMinorLinesSymbolButton->registerExpressionContextGenerator( mProfile );
624 mDistanceAxisLabelFontButton->registerExpressionContextGenerator( mProfile );
625 mElevationAxisLabelFontButton->registerExpressionContextGenerator( mProfile );
626 mChartBackgroundSymbolButton->registerExpressionContextGenerator( mProfile );
627 mChartBorderSymbolButton->registerExpressionContextGenerator( mProfile );
630 setGuiElementValues();
635void QgsLayoutElevationProfileWidget::setGuiElementValues()
639 mSpinTolerance->setValue( mProfile->tolerance() );
640 mCheckControlledByAtlas->setChecked( mProfile->atlasDriven() );
642 mSpinMinDistance->setValue( mProfile->plot()->xMinimum() );
643 mSpinMaxDistance->setValue( mProfile->plot()->xMaximum() );
644 mSpinMinElevation->setValue( mProfile->plot()->yMinimum() );
645 mSpinMaxElevation->setValue( mProfile->plot()->yMaximum() );
647 if ( mProfile->plot()->xAxis().gridMajorSymbol() )
648 mDistanceAxisMajorLinesSymbolButton->setSymbol( mProfile->plot()->xAxis().gridMajorSymbol()->clone() );
649 if ( mProfile->plot()->xAxis().gridMinorSymbol() )
650 mDistanceAxisMinorLinesSymbolButton->setSymbol( mProfile->plot()->xAxis().gridMinorSymbol()->clone() );
651 if ( mProfile->plot()->yAxis().gridMajorSymbol() )
652 mElevationAxisMajorLinesSymbolButton->setSymbol( mProfile->plot()->yAxis().gridMajorSymbol()->clone() );
653 if ( mProfile->plot()->yAxis().gridMajorSymbol() )
654 mElevationAxisMinorLinesSymbolButton->setSymbol( mProfile->plot()->yAxis().gridMinorSymbol()->clone() );
656 mDistanceAxisLabelFontButton->setTextFormat( mProfile->plot()->xAxis().textFormat() );
657 mElevationAxisLabelFontButton->setTextFormat( mProfile->plot()->yAxis().textFormat() );
659 mDistanceAxisMajorIntervalSpin->setValue( mProfile->plot()->xAxis().gridIntervalMajor() );
660 mDistanceAxisMinorIntervalSpin->setValue( mProfile->plot()->xAxis().gridIntervalMinor() );
661 mDistanceAxisLabelIntervalSpin->setValue( mProfile->plot()->xAxis().labelInterval() );
663 mElevationAxisMajorIntervalSpin->setValue( mProfile->plot()->yAxis().gridIntervalMajor() );
664 mElevationAxisMinorIntervalSpin->setValue( mProfile->plot()->yAxis().gridIntervalMinor() );
665 mElevationAxisLabelIntervalSpin->setValue( mProfile->plot()->yAxis().labelInterval() );
667 if ( mProfile->plot()->chartBackgroundSymbol() )
668 mChartBackgroundSymbolButton->setSymbol( mProfile->plot()->chartBackgroundSymbol()->clone() );
669 if ( mProfile->plot()->chartBorderSymbol() )
670 mChartBorderSymbolButton->setSymbol( mProfile->plot()->chartBorderSymbol()->clone() );
672 mSpinLeftMargin->setValue( mProfile->plot()->margins().left() );
673 mSpinRightMargin->setValue( mProfile->plot()->margins().right() );
674 mSpinTopMargin->setValue( mProfile->plot()->margins().top() );
675 mSpinBottomMargin->setValue( mProfile->plot()->margins().bottom() );
677 const QList<QgsLayerTreeLayer *> layers = mLayerTree->findLayers();
680 layer->setItemVisibilityChecked( mProfile->layers().contains( layer->layer() ) );
682 mLayerTree->reorderGroupLayers( mProfile->layers() );
703void QgsLayoutElevationProfileWidget::updateItemLayers()
708 QList<QgsMapLayer *> layers;
709 const QList< QgsMapLayer * > layerOrder = mLayerTree->layerOrder();
710 layers.reserve( layerOrder.size() );
713 if ( mLayerTree->findLayer( layer )->isVisible() )
717 mProfile->setLayers( layers );
721void QgsLayoutElevationProfileWidget::layoutAtlasToggled(
bool atlasEnabled )
724 mProfile && mProfile->layout() && mProfile->layout()->reportContext().layer()
725 && mProfile->layout()->reportContext().layer()->geometryType() == Qgis::GeometryType::Line )
727 mCheckControlledByAtlas->setEnabled(
true );
731 mCheckControlledByAtlas->setEnabled(
false );
732 mCheckControlledByAtlas->setChecked(
false );
736void QgsLayoutElevationProfileWidget::atlasLayerChanged(
QgsVectorLayer *layer )
738 if ( !layer || layer->
geometryType() != Qgis::GeometryType::Line )
741 mCheckControlledByAtlas->setChecked(
false );
742 mCheckControlledByAtlas->setEnabled(
false );
747 mCheckControlledByAtlas->setEnabled(
true );
double yMaximum() const
Returns the maximum value of the y axis.
QgsPlotAxis & xAxis()
Returns a reference to the plot's x axis.
double xMaximum() const
Returns the maximum value of the x axis.
double xMinimum() const
Returns the minimum value of the x axis.
QgsPlotAxis & yAxis()
Returns a reference to the plot's y axis.
double yMinimum() const
Returns the minimum value of the y axis.
static QIcon getThemeIcon(const QString &name, const QColor &fillColor=QColor(), const QColor &strokeColor=QColor())
Helper to get a theme icon.
Abstract base class for curved geometry type.
A canvas for elevation profiles.
QgsCurve * profileCurve() const
Returns the profile curve.
QgsCoordinateReferenceSystem crs() const override
Returns the coordinate reference system (CRS) for map coordinates used by the canvas.
QList< QgsMapLayer * > layers() const
Returns the list of layers included in the profile.
const Qgs2DPlot & plot() const
Returns a reference to the 2D plot used by the widget.
double tolerance() const
Returns the tolerance of the profile (in crs() units).
A layer tree view for elevation profiles.
void populateInitialLayers(QgsProject *project)
Initially populates the tree view using layers from a project.
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
A fill symbol type, for rendering Polygon and MultiPolygon geometries.
Layer tree node points to a map layer.
void visibilityChanged(QgsLayerTreeNode *node)
Emitted when check state of a node within the tree has been changed.
Listens to the updates in map layer registry and does changes in layer tree.
Namespace with helper functions for layer tree operations.
void layerOrderChanged()
Emitted when the layer order has changed.
Class used to render QgsLayout as an atlas, by iterating over the features from an associated vector ...
void toggled(bool)
Emitted when atlas is enabled or disabled.
A common interface for layout designer dialogs and widgets.
A layout item subclass for elevation profile plots.
@ LayoutElevationProfile
Elevation profile item (since QGIS 3.30)
Base class for graphical items within a QgsLayout.
@ UndoElevationProfileElevationMajorGridlines
Change elevation profile elevation axis major gridlines.
@ UndoElevationProfileMaximumDistance
Change elevation profile maximum distance.
@ UndoElevationProfileChartBackground
Change elevation profile chart background.
@ UndoElevationProfileDistanceMinorGridlines
Change elevation profile distance axis minor gridlines.
@ UndoMarginTop
Top margin (since QGIS 3.30)
@ UndoElevationProfileChartBorder
Change elevation profile chart border.
@ UndoElevationProfileMaximumElevation
Change elevation profile maximum elevation.
@ UndoMarginLeft
Left margin (since QGIS 3.30)
@ UndoMarginRight
Right margin (since QGIS 3.30)
@ UndoElevationProfileTolerance
Change elevation profile distance tolerance.
@ UndoElevationProfileElevationFormat
Change elevation profile elevation axis number format.
@ UndoElevationProfileMinimumElevation
Change elevation profile minimum elevation.
@ UndoElevationProfileDistanceLabels
Change elevation profile distance axis label interval.
@ UndoMarginBottom
Bottom margin (since QGIS 3.30)
@ UndoElevationProfileElevationFont
Change elevation profile elevation axis number font.
@ UndoElevationProfileDistanceFormat
Change elevation profile distance axis number format.
@ UndoElevationProfileElevationMinorGridlines
Change elevation profile elevation axis minor gridlines.
@ UndoElevationProfileDistanceFont
Change elevation profile distance axis number font.
@ UndoElevationProfileElevationLabels
Change elevation profile elevation axis label interval.
@ UndoElevationProfileDistanceMajorGridlines
Change elevation profile distance axis major gridlines.
@ UndoElevationProfileMinimumDistance
Change elevation profile minimum distance.
int type() const override
Returns a unique graphics item type identifier.
void changed()
Emitted when the object's properties change.
@ ElevationProfileTolerance
Tolerance distance for elevation profiles (since QGIS 3.30)
@ ElevationProfileElevationLabelInterval
Label interval for elevation profile elevation axis (since QGIS 3.30)
@ ElevationProfileDistanceMajorInterval
Major grid line interval for elevation profile distance axis (since QGIS 3.30)
@ MarginTop
Top margin (since QGIS 3.30)
@ ElevationProfileDistanceLabelInterval
Label interval for elevation profile distance axis (since QGIS 3.30)
@ ElevationProfileElevationMinorInterval
Minor grid line interval for elevation profile elevation axis (since QGIS 3.30)
@ MarginLeft
Left margin (since QGIS 3.30)
@ ElevationProfileMaximumDistance
Maximum distance value for elevation profile (since QGIS 3.30)
@ MarginRight
Right margin (since QGIS 3.30)
@ ElevationProfileMinimumElevation
Minimum elevation value for elevation profile (since QGIS 3.30)
@ ElevationProfileElevationMajorInterval
Major grid line interval for elevation profile elevation axis (since QGIS 3.30)
@ ElevationProfileMinimumDistance
Minimum distance value for elevation profile (since QGIS 3.30)
@ MarginBottom
Bottom margin (since QGIS 3.30)
@ ElevationProfileDistanceMinorInterval
Minor grid line interval for elevation profile distance axis (since QGIS 3.30)
@ ElevationProfileMaximumElevation
Maximum elevation value for elevation profile (since QGIS 3.30)
void layerChanged(QgsVectorLayer *layer)
Emitted when the context's layer is changed.
A line symbol type, for rendering LineString and MultiLineString geometries.
Base class for all map layer types.
The QgsMargins class defines the four margins of a rectangle.
void setBottom(double bottom)
Sets the bottom margin to bottom.
void setLeft(double left)
Sets the left margin to left.
void setRight(double right)
Sets the right margin to right.
void setTop(double top)
Sets the top margin to top.
Interface for master layout type objects, such as print layouts and reports.
double gridIntervalMinor() const
Returns the interval of minor grid lines for the axis.
double gridIntervalMajor() const
Returns the interval of major grid lines for the axis.
double labelInterval() const
Returns the interval of labels for the axis.
static QgsFillSymbol * chartBorderSymbol()
Returns the default fill symbol to use for the chart area border.
static QgsLineSymbol * axisGridMinorSymbol()
Returns the default line symbol to use for axis minor grid lines.
static QgsFillSymbol * chartBackgroundSymbol()
Returns the default fill symbol to use for the chart area background fill.
static QgsLineSymbol * axisGridMajorSymbol()
Returns the default line symbol to use for axis major grid lines.
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
static QgsProject * instance()
Returns the QgsProject singleton instance.
Represents a vector layer which manages a vector based data sets.
Q_INVOKABLE Qgis::GeometryType geometryType() const
Returns point, line or polygon.