KD Chart 2
[rev.2.8]
src
KDChart
Polar
KDChartRingDiagram.h
Go to the documentation of this file.
1
/****************************************************************************
2
** Copyright (C) 2001-2021 Klaralvdalens Datakonsult AB. All rights reserved.
3
**
4
** This file is part of the KD Chart library.
5
**
6
** Licensees holding valid commercial KD Chart licenses may use this file in
7
** accordance with the KD Chart Commercial License Agreement provided with
8
** the Software.
9
**
10
**
11
** This file may be distributed and/or modified under the terms of the
12
** GNU General Public License version 2 and version 3 as published by the
13
** Free Software Foundation and appearing in the file LICENSE.GPL.txt included.
14
**
15
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17
**
18
** Contact info@kdab.com if any conditions of this licensing are not
19
** clear to you.
20
**
21
**********************************************************************/
22
23
#ifndef KDCHARTRINGDIAGRAM_H
24
#define KDCHARTRINGDIAGRAM_H
25
26
#include "
KDChartAbstractPieDiagram.h
"
27
28
namespace
KDChart
{
29
33
class
KDCHART_EXPORT
RingDiagram
:
public
AbstractPieDiagram
34
{
35
Q_OBJECT
36
37
Q_DISABLE_COPY(
RingDiagram
)
38
KDCHART_DECLARE_DERIVED_DIAGRAM
(
RingDiagram
,
PolarCoordinatePlane
)
39
40
public
:
41
explicit
RingDiagram
(
42
QWidget
* parent = 0,
PolarCoordinatePlane
* plane = 0 );
43
~
RingDiagram
()
override
;
44
45
protected
:
46
// Implement AbstractDiagram
48
void
paint(
PaintContext
* paintContext )
override
;
49
public
:
51
void
resize(
const
QSizeF& area )
override
;
52
53
// Implement AbstractPolarDiagram
55
qreal valueTotals()
const override
;
57
qreal numberOfValuesPerDataset()
const override
;
58
qreal numberOfDatasets()
const override
;
60
qreal numberOfGridRings()
const override
;
61
62
qreal valueTotals(
int
dataset )
const
;
63
64
virtual
RingDiagram
* clone()
const
;
65
69
bool
compare(
const
RingDiagram
* other )
const
;
70
71
void
setRelativeThickness(
bool
relativeThickness );
72
bool
relativeThickness()
const
;
73
74
virtual
void
setExpandWhenExploded(
bool
expand );
75
virtual
bool
expandWhenExploded()
const
;
76
77
protected
:
79
const
QPair<QPointF, QPointF>
calculateDataBoundaries()
const override
;
80
void
paintEvent( QPaintEvent* )
override
;
81
void
resizeEvent( QResizeEvent* )
override
;
82
83
private
:
84
void
drawOneSlice( QPainter* painter, uint dataset, uint slice, qreal granularity );
85
void
drawPieSurface( QPainter* painter, uint dataset, uint slice, qreal granularity );
86
QPointF pointOnEllipse(
const
QRectF& rect,
int
dataset,
int
slice,
bool
outer, qreal angle,
87
qreal totalGapFactor, qreal totalExplodeFactor );
88
};
// End of class RingDiagram
89
90
}
91
92
#endif // KDCHARTRINGDIAGRAM_H
QWidget
Class only listed here to document inheritance of some KDChart classes.
KDChartAbstractPieDiagram.h
KDChart
Definition:
KDChartAbstractCartesianDiagram.h:30
KDChart::PolarCoordinatePlane
Polar coordinate plane.
Definition:
KDChartPolarCoordinatePlane.h:37
KDChart::PaintContext
Stores information about painting diagrams.
Definition:
KDChartPaintContext.h:42
KDCHART_DECLARE_DERIVED_DIAGRAM
#define KDCHART_DECLARE_DERIVED_DIAGRAM(X, PLANE)
Definition:
KDChartGlobal.h:113
QPair
Definition:
KDChartWidget.h:35
KDChart::RingDiagram
RingDiagram defines a common ring diagram.
Definition:
KDChartRingDiagram.h:34
KDChart::AbstractPieDiagram
Base class for any diagram type.
Definition:
KDChartAbstractPieDiagram.h:36
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/