QGIS API Documentation 3.99.0-Master (d270888f95f)
Loading...
Searching...
No Matches
qgslayoutsize.h
Go to the documentation of this file.
1/***************************************************************************
2 qgslayoutsize.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 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSLAYOUTSIZE_H
19#define QGSLAYOUTSIZE_H
20
21#include "qgsconfig.h"
22
23#include "qgis.h"
24#include "qgis_core.h"
25
26#include <QSizeF>
27#include <QString>
28
29using namespace Qt::StringLiterals;
30
46class CORE_EXPORT QgsLayoutSize
47{
48 public:
49
57
62
68
75 void setSize( const double width, const double height )
76 {
77 mWidth = width;
78 mHeight = height;
79#ifdef QGISDEBUG
80 Q_ASSERT_X( !std::isnan( width ) && !std::isnan( height ), "QgsLayoutSize", "Layout size with NaN dimensions created" );
81#endif
82 }
83
89 double width() const { return mWidth; }
90
96 void setWidth( const double width )
97 {
98 mWidth = width;
99#ifdef QGISDEBUG
100 Q_ASSERT_X( !std::isnan( width ), "QgsLayoutSize", "Layout size with NaN dimensions created" );
101#endif
102 }
103
109 double height() const { return mHeight; }
110
116 void setHeight( const double height )
117 {
118 mHeight = height;
119#ifdef QGISDEBUG
120 Q_ASSERT_X( !std::isnan( height ), "QgsLayoutSize", "Layout size with NaN dimensions created" );
121#endif
122 }
123
128 Qgis::LayoutUnit units() const { return mUnits; }
129
135 void setUnits( const Qgis::LayoutUnit units ) { mUnits = units; }
136
142 bool isEmpty() const;
143
149 QSizeF toQSizeF() const;
150
155 QString encodeSize() const;
156
161 static QgsLayoutSize decodeSize( const QString &string );
162
163 bool operator==( const QgsLayoutSize &other ) const;
164 bool operator!=( const QgsLayoutSize &other ) const;
165
169 QgsLayoutSize operator*( double v ) const;
170
174 QgsLayoutSize operator*=( double v );
175
179 QgsLayoutSize operator/( double v ) const;
180
184 QgsLayoutSize operator/=( double v );
185
186#ifdef SIP_RUN
187 SIP_PYOBJECT __repr__();
188 % MethodCode
189 QString str = u"<QgsLayoutSize: %1 x %2 %3 >"_s.arg( sipCpp->width() ).arg( sipCpp->height() ).arg( QgsUnitTypes::toAbbreviatedString( sipCpp->units() ) );
190 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
191 % End
192#endif
193
194 private:
195
196 double mWidth = 0.0;
197 double mHeight = 0.0;
199
200};
201
202#endif // QGSLAYOUTSIZE_H
LayoutUnit
Layout measurement units.
Definition qgis.h:5275
@ Millimeters
Millimeters.
Definition qgis.h:5276
Provides a method of storing sizes, consisting of a width and height, for use in QGIS layouts.
void setUnits(const Qgis::LayoutUnit units)
Sets the units for the size.
void setSize(const double width, const double height)
Sets new width and height for the size.
double height() const
Returns the height of the size.
void setWidth(const double width)
Sets the width for the size.
Qgis::LayoutUnit units() const
Returns the units for the size.
double width() const
Returns the width of the size.
void setHeight(const double height)
Sets the height for the size.
QgsLayoutSize(double width, double height, Qgis::LayoutUnit units=Qgis::LayoutUnit::Millimeters)
Constructor for QgsLayoutSize.
static Q_INVOKABLE QString toAbbreviatedString(Qgis::DistanceUnit unit)
Returns a translated abbreviation representing a distance unit.
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
bool operator!=(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
QgsMargins operator*(const QgsMargins &margins, double factor)
Returns a QgsMargins object that is formed by multiplying each component of the given margins by fact...
Definition qgsmargins.h:252
QgsMargins operator/(const QgsMargins &margins, double divisor)
Returns a QgsMargins object that is formed by dividing the components of the given margins by the giv...
Definition qgsmargins.h:272