1// Copyright (C) 2023 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef QBARSET_H
5#define QBARSET_H
6
7#include <QtCore/qobject.h>
8#include <QtGraphs/qgraphsglobal.h>
9#include <QtGui/qbrush.h>
10#include <QtGui/qfont.h>
11#include <QtGui/qpen.h>
12#include <QtQml/qqmlengine.h>
13
14QT_BEGIN_NAMESPACE
15
16class QBarSetPrivate;
17
18class Q_GRAPHS_EXPORT QBarSet : public QObject
19{
20 Q_OBJECT
21 Q_PROPERTY(QString label READ label WRITE setLabel NOTIFY labelChanged FINAL)
22 Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged FINAL)
23 Q_PROPERTY(QColor selectedColor READ selectedColor WRITE setSelectedColor NOTIFY
24 selectedColorChanged FINAL)
25 Q_PROPERTY(
26 QColor borderColor READ borderColor WRITE setBorderColor NOTIFY borderColorChanged FINAL)
27 Q_PROPERTY(QColor labelColor READ labelColor WRITE setLabelColor NOTIFY labelColorChanged FINAL)
28 Q_PROPERTY(QVariantList values READ values WRITE setValues NOTIFY valuesChanged FINAL)
29 Q_PROPERTY(
30 qreal borderWidth READ borderWidth WRITE setBorderWidth NOTIFY borderWidthChanged FINAL)
31 Q_PROPERTY(qsizetype count READ count NOTIFY countChanged FINAL)
32 Q_PROPERTY(QList<qsizetype> selectedBars READ selectedBars NOTIFY selectedBarsChanged FINAL)
33 QML_NAMED_ELEMENT(BarSet)
34 Q_DECLARE_PRIVATE(QBarSet)
35
36public:
37 explicit QBarSet(QObject *parent = nullptr);
38 explicit QBarSet(const QString &label, QObject *parent = nullptr);
39 ~QBarSet() override;
40
41 void setLabel(const QString &label);
42 QString label() const;
43
44 Q_INVOKABLE void append(qreal value);
45 Q_INVOKABLE void append(const QList<qreal> &values);
46 Q_INVOKABLE void insert(qsizetype index, qreal value);
47 Q_INVOKABLE void remove(qsizetype index, qsizetype count = 1);
48 Q_INVOKABLE void replace(qsizetype index, qreal value);
49 Q_INVOKABLE qreal at(qsizetype index) const;
50 Q_INVOKABLE qsizetype count() const;
51 Q_INVOKABLE qreal sum() const;
52 Q_INVOKABLE void clear();
53
54 qreal operator [](qsizetype index) const;
55 QBarSet &operator << (qreal value);
56
57 QColor color() const;
58 void setColor(QColor color);
59
60 QColor borderColor() const;
61 void setBorderColor(QColor color);
62
63 QColor labelColor() const;
64 void setLabelColor(QColor color);
65
66 QColor selectedColor() const;
67 void setSelectedColor(QColor color);
68
69 QVariantList values() const;
70 void setValues(const QVariantList &values);
71 qreal borderWidth() const;
72 void setBorderWidth(qreal borderWidth);
73
74 Q_INVOKABLE bool isBarSelected(qsizetype index) const;
75 Q_INVOKABLE void selectBar(qsizetype index);
76 Q_INVOKABLE void deselectBar(qsizetype index);
77 Q_INVOKABLE void setBarSelected(qsizetype index, bool selected);
78 Q_INVOKABLE void selectAllBars();
79 Q_INVOKABLE void deselectAllBars();
80 Q_INVOKABLE void selectBars(const QList<qsizetype> &indexes);
81 Q_INVOKABLE void deselectBars(const QList<qsizetype> &indexes);
82 Q_INVOKABLE void toggleSelection(const QList<qsizetype> &indexes);
83 QList<qsizetype> selectedBars() const;
84
85Q_SIGNALS:
86 void update();
87 void labelChanged();
88 void colorChanged(QColor color);
89 void borderColorChanged(QColor color);
90 void labelColorChanged(QColor color);
91 void valuesChanged();
92 void selectedColorChanged(QColor color);
93 void countChanged();
94
95 void borderWidthChanged(qreal width);
96
97 void valuesAdded(qsizetype index, qsizetype count);
98 void valuesRemoved(qsizetype index, qsizetype count);
99 void valueChanged(qsizetype index);
100
101 void updatedBars();
102 void valueAdded(qsizetype index, qsizetype count);
103 void valueRemoved(qsizetype index, qsizetype count);
104
105 void selectedBarsChanged(const QList<qsizetype> &indexes);
106
107private:
108 Q_DISABLE_COPY(QBarSet)
109 friend class QBarSeries;
110 friend class QBarSeriesPrivate;
111};
112
113QT_END_NAMESPACE
114
115#endif // QBARSET_H
116

Provided by KDAB

Privacy Policy
Learn Advanced QML with KDAB
Find out more

source code of qtgraphs/src/graphs2d/barchart/qbarset.h