KD Chart API Documentation  3.1
KDChartRingDiagram.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** This file is part of the KD Chart library.
4 **
5 ** SPDX-FileCopyrightText: 2001 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
6 **
7 ** SPDX-License-Identifier: MIT
8 **
9 ****************************************************************************/
10 
11 #ifndef KDCHARTRINGDIAGRAM_H
12 #define KDCHARTRINGDIAGRAM_H
13 
15 
16 namespace KDChart {
17 
21 class KDCHART_EXPORT RingDiagram : public AbstractPieDiagram
22 {
23  Q_OBJECT
24 
25  Q_DISABLE_COPY(RingDiagram)
27 
28 public:
29  explicit RingDiagram(
30  QWidget *parent = nullptr, PolarCoordinatePlane *plane = nullptr);
31  ~RingDiagram() override;
32 
33 protected:
34  // Implement AbstractDiagram
36  void paint(PaintContext *paintContext) override;
37 
38 public:
40  void resize(const QSizeF &area) override;
41 
42  // Implement AbstractPolarDiagram
44  qreal valueTotals() const override;
46  qreal numberOfValuesPerDataset() const override;
47  qreal numberOfDatasets() const override;
49  qreal numberOfGridRings() const override;
50 
51  qreal valueTotals(int dataset) const;
52 
53  virtual RingDiagram *clone() const;
54 
58  bool compare(const RingDiagram *other) const;
59 
60  void setRelativeThickness(bool relativeThickness);
61  bool relativeThickness() const;
62 
63  virtual void setExpandWhenExploded(bool expand);
64  virtual bool expandWhenExploded() const;
65 
66 protected:
68  const QPair<QPointF, QPointF> calculateDataBoundaries() const override;
69  void paintEvent(QPaintEvent *) override;
70  void resizeEvent(QResizeEvent *) override;
71 
72 private:
73  void drawOneSlice(QPainter *painter, uint dataset, uint slice, qreal granularity);
74  void drawPieSurface(QPainter *painter, uint dataset, uint slice, qreal granularity);
75  QPointF pointOnEllipse(const QRectF &rect, int dataset, int slice, bool outer, qreal angle,
76  qreal totalGapFactor, qreal totalExplodeFactor);
77 }; // End of class RingDiagram
78 }
79 
80 #endif // KDCHARTRINGDIAGRAM_H
#define KDCHART_DECLARE_DERIVED_DIAGRAM(X, PLANE)
Base class for any diagram type.
Stores information about painting diagrams.
RingDiagram defines a common ring diagram.

© 2001 Klarälvdalens Datakonsult AB (KDAB)
"The Qt, C++ and OpenGL Experts"
https://www.kdab.com/
https://www.kdab.com/development-resources/qt-tools/kd-chart/
Generated by doxygen 1.9.1