38 m_fifty->
setText(QObject::tr(
"50%"));
63 QPainter *p = paintContext->
painter();
69 const QList<PrerenderedLabel *>
labels = {
74 const QPixmap &pixmap = label->
pixmap();
75 QPointF point = plane->translate(label->position())
76 - label->referencePointLocation();
77 p->drawPixmap(point, pixmap);
100 return QSize(100, 100);
105 return QSize(300, 200);
110 return QSize(150, 100);
115 return Qt::Vertical | Qt::Horizontal;
131 qDebug() <<
"TernaryAxis::setPosition: only south, east and west are supported "
132 "positions for ternary axes.";
136 if (m_title.isEmpty())
152 updatePrerenderedLabels();
163 return m_label->
text();
168 m_titleAttributes = a;
169 updatePrerenderedLabels();
174 return m_titleAttributes;
180 m_titleAttributes = a;
181 updatePrerenderedLabels();
187 return m_titleAttributes == a;
190 void TernaryAxis::updatePrerenderedLabels()
193 qreal axisLabelAngle = 0.0;
194 qreal fiftyMarkAngle = 0.0;
195 QPointF axisLabelPosition;
196 QPointF fiftyMarkPosition;
202 axisLabelAngle = 0.0;
203 fiftyMarkAngle = 0.0;
210 axisLabelAngle = 240.0;
218 axisLabelAngle = 120.0;
219 fiftyMarkAngle = 300.0;
227 qDebug() <<
"TernaryAxis::updatePrerenderedLabel: unknown location";
235 QFont font = attributes.
font();
236 font.setPointSizeF(0.85 * font.pointSizeF());
245 QSizeF topleft(0.0, 0.0);
246 QSizeF bottomRight(0.0, 0.0);
251 topleft.setHeight(m_label->
pixmap().height());
252 bottomRight.setHeight(m_fifty->
pixmap().height());
255 bottomRight.setWidth(m_label->
pixmap().width()
257 bottomRight.setHeight(m_label->
pixmap().height()
261 topleft.setWidth(m_label->
pixmap().width()
262 - (m_label->
pixmap().width()
264 bottomRight.setHeight(m_label->
pixmap().height()
265 - (m_label->
pixmap().height()
269 qDebug() <<
"TernaryAxis::requiredMargins: unknown location";
272 return QPair<QSizeF, QSizeF>(topleft, bottomRight);
const qreal RelMarkerLength
const QPointF TriangleTop
const QPointF AxisVector_B_C
const QPointF TriangleBottomLeft
const QPointF AxisVector_B_A
const QPointF TriangleBottomRight
const QPointF AxisVector_C_A
const AbstractDiagram * diagram() const
QStringList labels() const
Base class for diagrams based on a ternary coordinate plane.
Stores information about painting diagrams.
AbstractCoordinatePlane * coordinatePlane() const
QPainter * painter() const
Defines a position, using compass terminology.
KDChartEnums::PositionValue value() const
bool isEmpty() const override
void paintAll(QPainter &) override
virtual const Position position() const
void paintCtx(PaintContext *) override
void paint(QPainter *) override
QPair< QSizeF, QSizeF > requiredMargins() const
QSize sizeHint() const override
bool hasDefaultTitleTextAttributes() const
virtual void setPosition(Position p)
Qt::Orientations expandingDirections() const override
void setTitleTextAttributes(const TextAttributes &a)
QRect geometry() const override
void setTitleText(const QString &text)
void setGeometry(const QRect &rect) override
TernaryAxis(AbstractTernaryDiagram *diagram=nullptr)
QSize minimumSize() const override
QString titleText() const
void resetTitleTextAttributes()
QSize maximumSize() const override
TextAttributes titleTextAttributes() const
Ternary coordinate plane.
A set of text attributes.
void setReferencePoint(KDChartEnums::PositionValue)
void setPosition(const QPointF &position)
PrerenderedLabel is an internal KDChart class that simplifies creation and caching of cached text lab...
void setAngle(qreal angle)
const QString & text() const
void setFont(const QFont &font)
QPointF referencePointLocation(KDChartEnums::PositionValue position) const override
const QPixmap & pixmap() const override
void setText(const QString &text)