QGIS API Documentation
3.26.3-Buenos Aires (65e4edfdad)
|
Go to the documentation of this file.
28 mPercentPlacementComboBox->addItem(
QgsApplication::getThemeIcon( QStringLiteral(
"/mActionLabelAnchorCenter.svg" ) ), tr(
"Center of Line" ), 0.5 );
29 mPercentPlacementComboBox->addItem(
QgsApplication::getThemeIcon( QStringLiteral(
"/mActionLabelAnchorStart.svg" ) ), tr(
"Start of Line" ), 0.0 );
30 mPercentPlacementComboBox->addItem(
QgsApplication::getThemeIcon( QStringLiteral(
"/mActionLabelAnchorEnd.svg" ) ), tr(
"End of Line" ), 1.0 );
31 mPercentPlacementComboBox->addItem(
QgsApplication::getThemeIcon( QStringLiteral(
"/mActionLabelAnchorCustom.svg" ) ), tr(
"Custom…" ), -1.0 );
44 connect( mPercentPlacementComboBox, qOverload<int>( &QComboBox::currentIndexChanged ),
this, [ = ](
int )
49 if ( mPercentPlacementComboBox->currentData().toDouble() < 0 )
50 mCustomPlacementSpinBox->setEnabled(
true );
53 mCustomPlacementSpinBox->setEnabled( false );
55 mCustomPlacementSpinBox->setValue( mPercentPlacementComboBox->currentData().toDouble() * 100 );
56 mBlockSignals = false;
59 connect( mCustomPlacementSpinBox, qOverload<double>( &QDoubleSpinBox::valueChanged ),
this, [ = ](
double )
65 connect( mAnchorTypeComboBox, qOverload<int>( &QComboBox::currentIndexChanged ),
this, [ = ](
int )
70 updateAnchorTypeHint();
73 connect( mClippingComboBox, qOverload<int>( &QComboBox::currentIndexChanged ),
this, [ = ](
int )
79 connect( mAnchorTextPointComboBox, qOverload<int>( &QComboBox::currentIndexChanged ),
this, [ = ](
int )
84 updateAnchorTextPointHint();
91 updateAnchorTypeHint();
92 updateAnchorTextPointHint();
99 if ( comboIndex >= 0 )
101 mPercentPlacementComboBox->setCurrentIndex( comboIndex );
106 mPercentPlacementComboBox->setCurrentIndex( mPercentPlacementComboBox->findData( -1.0 ) );
109 mCustomPlacementSpinBox->setEnabled( mPercentPlacementComboBox->currentData().toDouble() < 0 );
111 mAnchorTypeComboBox->setCurrentIndex( mAnchorTypeComboBox->findData(
static_cast< int >(
settings.
anchorType() ) ) );
112 mClippingComboBox->setCurrentIndex( mClippingComboBox->findData(
static_cast< int >(
settings.
anchorClipping() ) ) );
113 mAnchorTextPointComboBox->setCurrentIndex( mAnchorTextPointComboBox->findData(
static_cast< int >(
settings.
anchorTextPoint() ) ) );
114 mBlockSignals =
false;
121 if ( mPercentPlacementComboBox->currentData().toDouble() >= 0 )
144 void QgsLabelLineAnchorWidget::updateAnchorTypeHint()
150 hint = tr(
"Labels are placed exactly on the label anchor only, and no other fallback placements are permitted." );
154 hint = tr(
"The label anchor is treated as a hint for the preferred label placement, but other placements close to the anchor point are permitted." );
157 mAnchorTypeHintLabel->setText( hint );
160 void QgsLabelLineAnchorWidget::updateAnchorTextPointHint()
166 hint = tr(
"Labels are placed so that the start of their text is placed at the anchor point." );
169 hint = tr(
"Labels are placed so that the center of their text is placed at the anchor point." );
172 hint = tr(
"Labels are placed so that the end of their text is placed at the anchor point." );
175 hint = tr(
"The text justification is determined based on the anchor point. Anchors close to the start of the line will use the start of the text, anchors close to the end will use the end of the text, and central values will use the center of the text." );
178 mAnchorTextPointHintLabel->setText( hint );
@ UseEntireLine
Entire original feature line geometry is used when calculating the line anchor for labels.
@ StartOfText
Anchor using start of text.
AnchorTextPoint anchorTextPoint() const
Returns the line anchor text point, which dictates which part of the label text should be placed at t...
void setAnchorTextPoint(AnchorTextPoint point)
Sets the line anchor text point, which dictates which part of the label text should be placed at the ...
void setAnchorClipping(AnchorClipping clipping)
Sets the line anchor clipping mode, which dictates how line strings are clipped before calculating th...
QgsProperty property(int key) const override
Returns a matching property from the collection, if one exists.
double lineAnchorPercent() const
Returns the percent along the line at which labels should be placed.
AnchorClipping anchorClipping() const
Returns the line anchor clipping mode, which dictates how line strings are clipped before calculating...
@ EndOfText
Anchor using end of text.
@ Strict
Line anchor is a strict placement, and other placements are not permitted.
@ UseVisiblePartsOfLine
Only visible parts of lines are considered when calculating the line anchor for labels.
@ CenterOfText
Anchor using center of text.
AnchorType anchorType() const
Returns the line anchor type, which dictates how the lineAnchorPercent() setting is handled.
AnchorTextPoint
Anchor point of label text.
@ LineAnchorPercent
Portion along line at which labels should be anchored (since QGIS 3.16)
@ LineAnchorClipping
Clipping mode for line anchor calculation (since QGIS 3.20)
@ HintOnly
Line anchor is a hint for preferred placement only, but other placements close to the hint are permit...
@ LineAnchorTextPoint
Line anchor text point (since QGIS 3.26)
AnchorType
Line anchor types.
void setLineAnchorPercent(double percent)
Sets the percent along the line at which labels should be placed.
A grouped map of multiple QgsProperty objects, each referenced by a integer key value.
Contains settings related to how the label engine places and formats labels for line features (or pol...
Represents a vector layer which manages a vector based data sets.
void setAnchorType(AnchorType type)
Sets the line anchor type, which dictates how the lineAnchorPercent() setting is handled.
@ LineAnchorType
Line anchor type (since QGIS 3.26)
void setProperty(int key, const QgsProperty &property)
Adds a property to the collection and takes ownership of it.
static QIcon getThemeIcon(const QString &name, const QColor &fillColor=QColor(), const QColor &strokeColor=QColor())
Helper to get a theme icon.
AnchorClipping
Clipping behavior for line anchor calculation.
@ FollowPlacement
Automatically set the anchor point based on the lineAnchorPercent() value. Values <25% will use the s...