1// Copyright (C) 2023 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef QBAR3DSERIES_H
5#define QBAR3DSERIES_H
6
7#include <QtCore/qpoint.h>
8#include <QtGraphs/qabstract3dseries.h>
9#include <QtGraphs/qbardataproxy.h>
10
11QT_BEGIN_NAMESPACE
12
13class QBar3DSeriesPrivate;
14
15class Q_GRAPHS_EXPORT QBar3DSeries : public QAbstract3DSeries
16{
17 Q_OBJECT
18 Q_DECLARE_PRIVATE(QBar3DSeries)
19 Q_PROPERTY(
20 QBarDataProxy *dataProxy READ dataProxy WRITE setDataProxy NOTIFY dataProxyChanged FINAL)
21 Q_PROPERTY(QPoint selectedBar READ selectedBar WRITE setSelectedBar NOTIFY selectedBarChanged)
22 Q_PROPERTY(float meshAngle READ meshAngle WRITE setMeshAngle NOTIFY meshAngleChanged FINAL)
23 Q_PROPERTY(QList<QColor> rowColors READ rowColors WRITE setRowColors NOTIFY rowColorsChanged)
24 Q_PROPERTY(QStringList rowLabels READ rowLabels WRITE setRowLabels NOTIFY rowLabelsChanged FINAL)
25 Q_PROPERTY(QStringList columnLabels READ columnLabels WRITE setColumnLabels NOTIFY
26 columnLabelsChanged FINAL)
27 Q_PROPERTY(
28 QBarDataArray dataArray READ dataArray WRITE setDataArray NOTIFY dataArrayChanged FINAL)
29
30public:
31 explicit QBar3DSeries(QObject *parent = nullptr);
32 explicit QBar3DSeries(QBarDataProxy *dataProxy, QObject *parent = nullptr);
33 ~QBar3DSeries() override;
34
35 void setDataProxy(QBarDataProxy *proxy);
36 QBarDataProxy *dataProxy() const;
37
38 void setSelectedBar(QPoint position);
39 QPoint selectedBar() const;
40 static QPoint invalidSelectionPosition();
41
42 void setMeshAngle(float angle);
43 float meshAngle() const;
44
45 QList<QColor> rowColors() const;
46 void setRowColors(const QList<QColor> &colors);
47
48 void setDataArray(const QBarDataArray &newDataArray);
49 void clearRow(qsizetype rowIndex);
50 void clearArray();
51 const QBarDataArray &dataArray() const &;
52 QBarDataArray dataArray() &&;
53 QStringList rowLabels() const;
54 void setRowLabels(const QStringList &labels);
55 QStringList columnLabels() const;
56 void setColumnLabels(const QStringList &labels);
57
58Q_SIGNALS:
59 void dataProxyChanged(QBarDataProxy *proxy);
60 void selectedBarChanged(QPoint position);
61 void meshAngleChanged(float angle);
62 void rowColorsChanged(const QList<QColor> &rowcolors);
63 void rowLabelsChanged();
64 void columnLabelsChanged();
65 void dataArrayChanged(const QBarDataArray &array);
66
67private:
68 Q_DISABLE_COPY(QBar3DSeries)
69
70 void connectSignals();
71 void handleMeshRotationChanged(const QQuaternion &rotation);
72
73 friend class QQuickGraphsBars;
74};
75
76QT_END_NAMESPACE
77
78#endif
79

Provided by KDAB

Privacy Policy
Start learning QML with our Intro Training
Find out more

source code of qtgraphs/src/graphs3d/data/qbar3dseries.h