/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Charts module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:GPL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3 or (at your option) any later version ** approved by the KDE Free Qt Foundation. The licenses are as published by ** the Free Software Foundation and appearing in the file LICENSE.GPL3 ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will ** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QCHART_H #define QCHART_H #include #include #include #include QT_BEGIN_NAMESPACE class QGraphicsSceneResizeEvent; QT_END_NAMESPACE QT_CHARTS_BEGIN_NAMESPACE class QAbstractSeries; class QAbstractAxis; class QLegend; class QChartPrivate; class QBoxPlotSeries; class QT_CHARTS_EXPORT QChart : public QGraphicsWidget { Q_OBJECT Q_PROPERTY(QChart::ChartTheme theme READ theme WRITE setTheme) Q_PROPERTY(QString title READ title WRITE setTitle) Q_PROPERTY(bool backgroundVisible READ isBackgroundVisible WRITE setBackgroundVisible) Q_PROPERTY(bool dropShadowEnabled READ isDropShadowEnabled WRITE setDropShadowEnabled) Q_PROPERTY(qreal backgroundRoundness READ backgroundRoundness WRITE setBackgroundRoundness) Q_PROPERTY(QChart::AnimationOptions animationOptions READ animationOptions WRITE setAnimationOptions) Q_PROPERTY(int animationDuration READ animationDuration WRITE setAnimationDuration) Q_PROPERTY(QEasingCurve animationEasingCurve READ animationEasingCurve WRITE setAnimationEasingCurve) Q_PROPERTY(QMargins margins READ margins WRITE setMargins) Q_PROPERTY(QChart::ChartType chartType READ chartType) Q_PROPERTY(bool plotAreaBackgroundVisible READ isPlotAreaBackgroundVisible WRITE setPlotAreaBackgroundVisible) Q_PROPERTY(bool localizeNumbers READ localizeNumbers WRITE setLocalizeNumbers) Q_PROPERTY(QLocale locale READ locale WRITE setLocale) Q_PROPERTY(QRectF plotArea READ plotArea NOTIFY plotAreaChanged) Q_ENUMS(ChartTheme) Q_ENUMS(AnimationOption) Q_ENUMS(ChartType) public: enum ChartType { ChartTypeUndefined = 0, ChartTypeCartesian, ChartTypePolar }; enum ChartTheme { ChartThemeLight = 0, ChartThemeBlueCerulean, ChartThemeDark, ChartThemeBrownSand, ChartThemeBlueNcs, ChartThemeHighContrast, ChartThemeBlueIcy, ChartThemeQt }; enum AnimationOption { NoAnimation = 0x0, GridAxisAnimations = 0x1, SeriesAnimations = 0x2, AllAnimations = 0x3 }; Q_DECLARE_FLAGS(AnimationOptions, AnimationOption) public: explicit QChart(QGraphicsItem *parent = Q_NULLPTR, Qt::WindowFlags wFlags = Qt::WindowFlags()); ~QChart(); void addSeries(QAbstractSeries *series); void removeSeries(QAbstractSeries *series); void removeAllSeries(); QList series() const; // *** deprecated *** void setAxisX(QAbstractAxis *axis, QAbstractSeries *series = Q_NULLPTR); void setAxisY(QAbstractAxis *axis, QAbstractSeries *series = Q_NULLPTR); QAbstractAxis *axisX(QAbstractSeries *series = Q_NULLPTR) const; QAbstractAxis *axisY(QAbstractSeries *series = Q_NULLPTR) const; // ****************** void addAxis(QAbstractAxis *axis, Qt::Alignment alignment); void removeAxis(QAbstractAxis *axis); QList axes(Qt::Orientations orientation = Qt::Horizontal|Qt::Vertical, QAbstractSeries *series = Q_NULLPTR) const; void createDefaultAxes(); void setTheme(QChart::ChartTheme theme); QChart::ChartTheme theme() const; void setTitle(const QString &title); QString title() const; void setTitleFont(const QFont &font); QFont titleFont() const; void setTitleBrush(const QBrush &brush); QBrush titleBrush() const; void setBackgroundBrush(const QBrush &brush); QBrush backgroundBrush() const; void setBackgroundPen(const QPen &pen); QPen backgroundPen() const; void setBackgroundVisible(bool visible = true); bool isBackgroundVisible() const; void setDropShadowEnabled(bool enabled = true); bool isDropShadowEnabled() const; void setBackgroundRoundness(qreal diameter); qreal backgroundRoundness() const; void setAnimationOptions(AnimationOptions options); AnimationOptions animationOptions() const; void setAnimationDuration(int msecs); int animationDuration() const; void setAnimationEasingCurve(const QEasingCurve &curve); QEasingCurve animationEasingCurve() const; void zoomIn(); void zoomOut(); void zoomIn(const QRectF &rect); void zoom(qreal factor); void zoomReset(); bool isZoomed(); void scroll(qreal dx, qreal dy); QLegend *legend() const; void setMargins(const QMargins &margins); QMargins margins() const; QRectF plotArea() const; void setPlotAreaBackgroundBrush(const QBrush &brush); QBrush plotAreaBackgroundBrush() const; void setPlotAreaBackgroundPen(const QPen &pen); QPen plotAreaBackgroundPen() const; void setPlotAreaBackgroundVisible(bool visible = true); bool isPlotAreaBackgroundVisible() const; void setLocalizeNumbers(bool localize); bool localizeNumbers() const; void setLocale(const QLocale &locale); QLocale locale() const; QPointF mapToValue(const QPointF &position, QAbstractSeries *series = Q_NULLPTR); QPointF mapToPosition(const QPointF &value, QAbstractSeries *series = Q_NULLPTR); ChartType chartType() const; Q_SIGNALS: void plotAreaChanged(const QRectF &plotArea); protected: explicit QChart(QChart::ChartType type, QGraphicsItem *parent, Qt::WindowFlags wFlags); QScopedPointer d_ptr; friend class QLegend; friend class DeclarativeChart; friend class ChartDataSet; friend class ChartPresenter; friend class ChartThemeManager; friend class QAbstractSeries; friend class QBoxPlotSeriesPrivate; friend class QCandlestickSeriesPrivate; friend class AbstractBarChartItem; private: Q_DISABLE_COPY(QChart) }; QT_CHARTS_END_NAMESPACE Q_DECLARE_OPERATORS_FOR_FLAGS(QT_CHARTS_NAMESPACE::QChart::AnimationOptions) #endif // QCHART_H