29#include <QtCore/qglobal.h>
32#ifdef QCUSTOMPLOT_USE_OPENGL
33# if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
34# define QCP_OPENGL_PBUFFER
36# define QCP_OPENGL_FBO
38# if QT_VERSION >= QT_VERSION_CHECK(5, 3, 0)
39# define QCP_OPENGL_OFFSCREENSURFACE
43#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0)
44# define QCP_DEVICEPIXELRATIO_SUPPORTED
45# if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)
46# define QCP_DEVICEPIXELRATIO_FLOAT
50#include <QtCore/QObject>
51#include <QtCore/QPointer>
52#include <QtCore/QSharedPointer>
53#include <QtCore/QTimer>
54#include <QtGui/QPainter>
55#include <QtGui/QPaintEvent>
56#include <QtGui/QMouseEvent>
57#include <QtGui/QWheelEvent>
58#include <QtGui/QPixmap>
59#include <QtCore/QVector>
60#include <QtCore/QString>
61#include <QtCore/QDateTime>
62#include <QtCore/QMultiMap>
63#include <QtCore/QFlags>
64#include <QtCore/QDebug>
65#include <QtCore/QStack>
66#include <QtCore/QCache>
67#include <QtCore/QMargins>
72# include <QtGui/QOpenGLContext>
73# include <QtGui/QOpenGLFramebufferObject>
74# ifdef QCP_OPENGL_OFFSCREENSURFACE
75# include <QtGui/QOffscreenSurface>
77# include <QtGui/QWindow>
80#ifdef QCP_OPENGL_PBUFFER
81# include <QtOpenGL/QGLPixelBuffer>
83#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
85# include <QtGui/QWidget>
86# include <QtGui/QPrinter>
87# include <QtGui/QPrintEngine>
90# include <QtWidgets/QWidget>
91# include <QtPrintSupport/QtPrintSupport>
118#define QCUSTOMPLOT_VERSION_STR "2.0.1"
119#define QCUSTOMPLOT_VERSION 0x020001
122#if defined(QT_STATIC_BUILD)
124#elif defined(QCUSTOMPLOT_COMPILE_LIBRARY)
125# define QCP_LIB_DECL Q_DECL_EXPORT
126#elif defined(QCUSTOMPLOT_USE_LIBRARY)
127# define QCP_LIB_DECL Q_DECL_IMPORT
133#ifndef Q_DECL_OVERRIDE
134# define Q_DECL_OVERRIDE
154 Q_FLAGS(AntialiasedElements)
156 Q_FLAGS(PlottingHints)
158 Q_FLAGS(Interactions)
309inline bool isInvalidData(
double value)
311 return qIsNaN(value) || qIsInf(value);
319inline bool isInvalidData(
double value1,
double value2)
321 return isInvalidData(value1) || isInvalidData(value2);
330inline void setMarginValue(QMargins &margins,
QCP::MarginSide side,
int value)
336 case QCP::msTop: margins.setTop(value);
break;
338 case QCP::msAll: margins = QMargins(value, value, value, value);
break;
350inline int getMarginValue(
const QMargins &margins,
QCP::MarginSide side)
364extern const QMetaObject staticMetaObject;
367Q_DECLARE_OPERATORS_FOR_FLAGS(QCP::AntialiasedElements)
368Q_DECLARE_OPERATORS_FOR_FLAGS(QCP::PlottingHints)
369Q_DECLARE_OPERATORS_FOR_FLAGS(QCP::MarginSides)
370Q_DECLARE_OPERATORS_FOR_FLAGS(QCP::Interactions)
396 double x()
const {
return mX; }
397 double y()
const {
return mY; }
398 double &rx() {
return mX; }
399 double &ry() {
return mY; }
402 void setX(
double x) { mX = x; }
403 void setY(
double y) { mY = y; }
406 double length()
const {
return qSqrt(mX*mX+mY*mY); }
408 QPoint
toPoint()
const {
return QPoint(mX, mY); }
411 bool isNull()
const {
return qIsNull(mX) && qIsNull(mY); }
417 double distanceSquaredToLine(
const QLineF &line)
const;
436Q_DECLARE_TYPEINFO(QCPVector2D, Q_MOVABLE_TYPE);
438inline const QCPVector2D operator*(
double factor,
const QCPVector2D &vec) {
return QCPVector2D(vec.mX*factor, vec.mY*factor); }
439inline const QCPVector2D operator*(
const QCPVector2D &vec,
double factor) {
return QCPVector2D(vec.mX*factor, vec.mY*factor); }
440inline const QCPVector2D operator/(
const QCPVector2D &vec,
double divisor) {
return QCPVector2D(vec.mX/divisor, vec.mY/divisor); }
441inline const QCPVector2D operator+(
const QCPVector2D &vec1,
const QCPVector2D &vec2) {
return QCPVector2D(vec1.mX+vec2.mX, vec1.mY+vec2.mY); }
442inline const QCPVector2D operator-(
const QCPVector2D &vec1,
const QCPVector2D &vec2) {
return QCPVector2D(vec1.mX-vec2.mX, vec1.mY-vec2.mY); }
443inline const QCPVector2D operator-(
const QCPVector2D &vec) {
return QCPVector2D(-vec.mX, -vec.mY); }
451 d.nospace() <<
"QCPVector2D(" << vec.x() <<
", " << vec.y() <<
")";
475 Q_FLAGS(PainterModes)
476 Q_DECLARE_FLAGS(PainterModes, PainterMode)
482 bool antialiasing()
const {
return testRenderHint(QPainter::Antialiasing); }
483 PainterModes modes()
const {
return mModes; }
486 void setAntialiasing(
bool enabled);
487 void setMode(PainterMode mode,
bool enabled=
true);
488 void setModes(PainterModes modes);
491 bool begin(QPaintDevice *device);
492 void setPen(
const QPen &pen);
493 void setPen(
const QColor &color);
494 void setPen(Qt::PenStyle penStyle);
495 void drawLine(
const QLineF &line);
496 void drawLine(
const QPointF &p1,
const QPointF &p2) {drawLine(QLineF(p1, p2));}
501 void makeNonCosmetic();
506 bool mIsAntialiasing;
509 QStack<bool> mAntialiasingStack;
511Q_DECLARE_OPERATORS_FOR_FLAGS(QCPPainter::PainterModes)
527 QSize size()
const {
return mSize; }
528 bool invalidated()
const {
return mInvalidated; }
529 double devicePixelRatio()
const {
return mDevicePixelRatio; }
532 void setSize(
const QSize &size);
545 double mDevicePixelRatio;
575#ifdef QCP_OPENGL_PBUFFER
579 explicit QCPPaintBufferGlPbuffer(
const QSize &size,
double devicePixelRatio,
int multisamples);
580 virtual ~QCPPaintBufferGlPbuffer();
583 virtual QCPPainter *startPainting() Q_DECL_OVERRIDE;
584 virtual
void draw(
QCPPainter *painter) const Q_DECL_OVERRIDE;
585 void clear(const
QColor &color) Q_DECL_OVERRIDE;
593 virtual
void reallocateBuffer() Q_DECL_OVERRIDE;
602 explicit QCPPaintBufferGlFbo(
const QSize &size,
double devicePixelRatio, QWeakPointer<QOpenGLContext> glContext, QWeakPointer<QOpenGLPaintDevice> glPaintDevice);
603 virtual ~QCPPaintBufferGlFbo();
606 virtual QCPPainter *startPainting() Q_DECL_OVERRIDE;
607 virtual
void donePainting() Q_DECL_OVERRIDE;
608 virtual
void draw(
QCPPainter *painter) const Q_DECL_OVERRIDE;
609 void clear(const
QColor &color) Q_DECL_OVERRIDE;
613 QWeakPointer<QOpenGLContext> mGlContext;
614 QWeakPointer<QOpenGLPaintDevice> mGlPaintDevice;
615 QOpenGLFramebufferObject *mGlFrameBuffer;
618 virtual
void reallocateBuffer() Q_DECL_OVERRIDE;
632 Q_PROPERTY(QCustomPlot* parentPlot READ parentPlot)
633 Q_PROPERTY(
QString name READ name)
636 Q_PROPERTY(
bool visible READ visible WRITE
setVisible)
657 QCustomPlot *parentPlot()
const {
return mParentPlot; }
658 QString name()
const {
return mName; }
659 int index()
const {
return mIndex; }
661 bool visible()
const {
return mVisible; }
662 LayerMode mode()
const {
return mMode; }
665 void setVisible(
bool visible);
666 void setMode(LayerMode mode);
673 QCustomPlot *mParentPlot;
676 QList<QCPLayerable*> mChildren;
681 QWeakPointer<QCPAbstractPaintBuffer> mPaintBuffer;
684 void draw(QCPPainter *painter);
685 void drawToPaintBuffer();
686 void addChild(QCPLayerable *layerable,
bool prepend);
687 void removeChild(QCPLayerable *layerable);
690 Q_DISABLE_COPY(QCPLayer)
692 friend class QCustomPlot;
693 friend class QCPLayerable;
701 Q_PROPERTY(
bool visible READ visible WRITE
setVisible)
702 Q_PROPERTY(QCustomPlot* parentPlot READ parentPlot)
705 Q_PROPERTY(
bool antialiased READ antialiased WRITE
setAntialiased)
712 bool visible()
const {
return mVisible; }
713 QCustomPlot *parentPlot()
const {
return mParentPlot; }
715 QCPLayer *layer()
const {
return mLayer; }
716 bool antialiased()
const {
return mAntialiased; }
719 void setVisible(
bool on);
720 Q_SLOT
bool setLayer(QCPLayer *layer);
721 bool setLayer(
const QString &layerName);
722 void setAntialiased(
bool enabled);
725 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
728 bool realVisibility()
const;
736 QCustomPlot *mParentPlot;
737 QPointer<QCPLayerable> mParentLayerable;
742 virtual void parentPlotInitialized(QCustomPlot *parentPlot);
744 virtual QRect clipRect()
const;
745 virtual void applyDefaultAntialiasingHint(
QCPPainter *painter)
const = 0;
748 virtual void selectEvent(
QMouseEvent *event,
bool additive,
const QVariant &details,
bool *selectionStateChanged);
749 virtual void deselectEvent(
bool *selectionStateChanged);
758 void initializeParentPlot(QCustomPlot *parentPlot);
760 bool moveToLayer(QCPLayer *layer,
bool prepend);
766 friend class QCustomPlot;
767 friend class QCPLayer;
768 friend class QCPAxisRect;
783 QCPRange(
double lower,
double upper);
785 bool operator==(
const QCPRange& other)
const {
return lower == other.lower && upper == other.upper; }
786 bool operator!=(
const QCPRange& other)
const {
return !(*
this == other); }
794 friend inline const QCPRange operator-(
const QCPRange& range,
double value);
795 friend inline const QCPRange operator*(
const QCPRange& range,
double value);
796 friend inline const QCPRange operator*(
double value,
const QCPRange& range);
797 friend inline const QCPRange operator/(
const QCPRange& range,
double value);
799 double size()
const {
return upper-lower; }
800 double center()
const {
return (upper+lower)*0.5; }
801 void normalize() {
if (lower > upper) qSwap(lower, upper); }
802 void expand(
const QCPRange &otherRange);
803 void expand(
double includeCoord);
805 QCPRange expanded(
double includeCoord)
const;
806 QCPRange bounded(
double lowerBound,
double upperBound)
const;
807 QCPRange sanitizedForLogScale()
const;
808 QCPRange sanitizedForLinScale()
const;
809 bool contains(
double value)
const {
return value >= lower && value <= upper; }
811 static bool validRange(
double lower,
double upper);
812 static bool validRange(
const QCPRange &range);
817Q_DECLARE_TYPEINFO(
QCPRange, Q_MOVABLE_TYPE);
823inline QDebug operator<< (QDebug d,
const QCPRange &range)
825 d.nospace() <<
"QCPRange(" << range.lower <<
", " << range.upper <<
")";
901 bool operator==(
const QCPDataRange& other)
const {
return mBegin == other.mBegin && mEnd == other.mEnd; }
902 bool operator!=(
const QCPDataRange& other)
const {
return !(*
this == other); }
905 int begin()
const {
return mBegin; }
906 int end()
const {
return mEnd; }
907 int size()
const {
return mEnd-mBegin; }
915 bool isValid()
const {
return (mEnd >= mBegin) && (mBegin >= 0); }
929Q_DECLARE_TYPEINFO(QCPDataRange, Q_MOVABLE_TYPE);
939 bool operator!=(
const QCPDataSelection& other)
const {
return !(*
this == other); }
955 int dataPointCount()
const;
961 void addDataRange(
const QCPDataRange &dataRange,
bool simplify=
true);
963 bool isEmpty()
const {
return mDataRanges.isEmpty(); }
975 inline static bool lessThanDataRangeBegin(
const QCPDataRange &a,
const QCPDataRange &b) {
return a.begin() < b.begin(); }
977Q_DECLARE_METATYPE(QCPDataSelection)
1070 d.nospace() <<
"QCPDataRange(" << dataRange.begin() <<
", " << dataRange.end() <<
")";
1080 d.nospace() <<
"QCPDataSelection(";
1107 QRect rect()
const {
return mRect; }
1109 QPen pen()
const {
return mPen; }
1110 QBrush brush()
const {
return mBrush; }
1114 void setPen(
const QPen &pen);
1115 void setBrush(
const QBrush &brush);
1118 Q_SLOT
void cancel();
1138 virtual void keyPressEvent(
QKeyEvent *event);
1141 virtual void applyDefaultAntialiasingHint(
QCPPainter *painter)
const Q_DECL_OVERRIDE;
1142 virtual void draw(
QCPPainter *painter) Q_DECL_OVERRIDE;
1144 friend class QCustomPlot;
1162 bool isEmpty()
const;
1191 Q_PROPERTY(QMargins margins READ margins WRITE
setMargins)
1193 Q_PROPERTY(QSize minimumSize READ minimumSize WRITE
setMinimumSize)
1194 Q_PROPERTY(QSize maximumSize READ maximumSize WRITE
setMaximumSize)
1206 Q_ENUMS(UpdatePhase)
1219 Q_ENUMS(SizeConstraintRect)
1225 QCPLayout *
layout()
const {
return mParentLayout; }
1226 QRect
rect()
const {
return mRect; }
1228 QMargins margins()
const {
return mMargins; }
1229 QMargins minimumMargins()
const {
return mMinimumMargins; }
1230 QCP::MarginSides autoMargins()
const {
return mAutoMargins; }
1231 QSize minimumSize()
const {
return mMinimumSize; }
1232 QSize maximumSize()
const {
return mMaximumSize; }
1233 SizeConstraintRect sizeConstraintRect()
const {
return mSizeConstraintRect; }
1234 QCPMarginGroup *marginGroup(
QCP::MarginSide side)
const {
return mMarginGroups.value(side, (QCPMarginGroup*)0); }
1235 QHash<QCP::MarginSide, QCPMarginGroup*> marginGroups()
const {
return mMarginGroups; }
1238 void setOuterRect(
const QRect &rect);
1239 void setMargins(
const QMargins &margins);
1240 void setMinimumMargins(
const QMargins &margins);
1241 void setAutoMargins(QCP::MarginSides sides);
1242 void setMinimumSize(
const QSize &size);
1243 void setMinimumSize(
int width,
int height);
1244 void setMaximumSize(
const QSize &size);
1245 void setMaximumSize(
int width,
int height);
1246 void setSizeConstraintRect(SizeConstraintRect constraintRect);
1247 void setMarginGroup(QCP::MarginSides sides, QCPMarginGroup *group);
1250 virtual void update(UpdatePhase phase);
1251 virtual QSize minimumOuterSizeHint()
const;
1252 virtual QSize maximumOuterSizeHint()
const;
1253 virtual QList<QCPLayoutElement*> elements(
bool recursive)
const;
1256 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE;
1260 QCPLayout *mParentLayout;
1261 QSize mMinimumSize, mMaximumSize;
1262 SizeConstraintRect mSizeConstraintRect;
1263 QRect mRect, mOuterRect;
1264 QMargins mMargins, mMinimumMargins;
1265 QCP::MarginSides mAutoMargins;
1266 QHash<QCP::MarginSide, QCPMarginGroup*> mMarginGroups;
1269 virtual
int calculateAutoMargin(QCP::MarginSide side);
1270 virtual
void layoutChanged();
1273 virtual
void applyDefaultAntialiasingHint(QCPPainter *painter) const Q_DECL_OVERRIDE { Q_UNUSED(painter) }
1274 virtual void draw(QCPPainter *painter) Q_DECL_OVERRIDE { Q_UNUSED(painter) }
1275 virtual void parentPlotInitialized(QCustomPlot *parentPlot) Q_DECL_OVERRIDE;
1278 Q_DISABLE_COPY(QCPLayoutElement)
1280 friend class QCustomPlot;
1281 friend class QCPLayout;
1282 friend class QCPMarginGroup;
1300 virtual QCPLayoutElement*
takeAt(
int index) = 0;
1301 virtual bool take(QCPLayoutElement* element) = 0;
1306 bool remove(QCPLayoutElement* element);
1311 virtual void updateLayout();
1315 void adoptElement(QCPLayoutElement *el);
1316 void releaseElement(QCPLayoutElement *el);
1318 static QSize getFinalMinimumOuterSize(
const QCPLayoutElement *el);
1319 static QSize getFinalMaximumOuterSize(
const QCPLayoutElement *el);
1323 friend class QCPLayoutElement;
1336 Q_PROPERTY(
int rowSpacing READ rowSpacing WRITE
setRowSpacing)
1338 Q_PROPERTY(
int wrap READ wrap WRITE
setWrap)
1359 int columnCount()
const {
return mElements.size() > 0 ? mElements.first().size() : 0; }
1360 QList<double> columnStretchFactors()
const {
return mColumnStretchFactors; }
1361 QList<double> rowStretchFactors()
const {
return mRowStretchFactors; }
1362 int columnSpacing()
const {
return mColumnSpacing; }
1363 int rowSpacing()
const {
return mRowSpacing; }
1364 int wrap()
const {
return mWrap; }
1365 FillOrder fillOrder()
const {
return mFillOrder; }
1368 void setColumnStretchFactor(
int column,
double factor);
1369 void setColumnStretchFactors(
const QList<double> &factors);
1370 void setRowStretchFactor(
int row,
double factor);
1371 void setRowStretchFactors(
const QList<double> &factors);
1372 void setColumnSpacing(
int pixels);
1373 void setRowSpacing(
int pixels);
1374 void setWrap(
int count);
1375 void setFillOrder(FillOrder order,
bool rearrange=
true);
1378 virtual void updateLayout() Q_DECL_OVERRIDE;
1384 virtual void simplify() Q_DECL_OVERRIDE;
1385 virtual QSize minimumOuterSizeHint() const Q_DECL_OVERRIDE;
1386 virtual QSize maximumOuterSizeHint() const Q_DECL_OVERRIDE;
1392 bool hasElement(
int row,
int column);
1393 void expandTo(
int newRowCount,
int newColumnCount);
1394 void insertRow(
int newIndex);
1395 void insertColumn(
int newIndex);
1396 int rowColToIndex(
int row,
int column) const;
1397 void indexToRowCol(
int index,
int &row,
int &column) const;
1402 QList<
double> mColumnStretchFactors;
1403 QList<
double> mRowStretchFactors;
1404 int mColumnSpacing, mRowSpacing;
1406 FillOrder mFillOrder;
1409 void getMinimumRowColSizes(
QVector<
int> *minColWidths,
QVector<
int> *minRowHeights) const;
1410 void getMaximumRowColSizes(
QVector<
int> *maxColWidths,
QVector<
int> *maxRowHeights) const;
1428 Q_ENUMS(InsetPlacement)
1434 InsetPlacement insetPlacement(
int index)
const;
1435 Qt::Alignment insetAlignment(
int index)
const;
1436 QRectF insetRect(
int index)
const;
1439 void setInsetPlacement(
int index, InsetPlacement placement);
1440 void setInsetAlignment(
int index, Qt::Alignment alignment);
1441 void setInsetRect(
int index,
const QRectF &rect);
1444 virtual void updateLayout() Q_DECL_OVERRIDE;
1445 virtual
int elementCount() const Q_DECL_OVERRIDE;
1450 virtual double selectTest(
const QPointF &pos,
bool onlySelectable,
QVariant *details=0) const Q_DECL_OVERRIDE;
1459 QList<InsetPlacement> mInsetPlacement;
1460 QList<
Qt::Alignment> mInsetAlignment;
1500 Q_ENUMS(EndingStyle)
1503 QCPLineEnding(EndingStyle style,
double width=8,
double length=10,
bool inverted=
false);
1506 EndingStyle style()
const {
return mStyle; }
1507 double width()
const {
return mWidth; }
1508 double length()
const {
return mLength; }
1509 bool inverted()
const {
return mInverted; }
1512 void setStyle(EndingStyle style);
1513 void setWidth(
double width);
1514 void setLength(
double length);
1515 void setInverted(
bool inverted);
1518 double boundingDistance()
const;
1519 double realLength()
const;
1520 void draw(QCPPainter *painter,
const QCPVector2D &pos,
const QCPVector2D &dir)
const;
1521 void draw(QCPPainter *painter,
const QCPVector2D &pos,
double angle)
const;
1526 double mWidth, mLength;
1529Q_DECLARE_TYPEINFO(QCPLineEnding, Q_MOVABLE_TYPE);
1552 Q_ENUMS(TickStepStrategy)
1558 TickStepStrategy tickStepStrategy()
const {
return mTickStepStrategy; }
1559 int tickCount()
const {
return mTickCount; }
1560 double tickOrigin()
const {
return mTickOrigin; }
1563 void setTickStepStrategy(TickStepStrategy strategy);
1564 void setTickCount(
int count);
1565 void setTickOrigin(
double origin);
1568 virtual void generate(
const QCPRange &range,
const QLocale &locale, QChar formatChar,
int precision, QVector<double> &ticks, QVector<double> *subTicks, QVector<QString> *tickLabels);
1572 TickStepStrategy mTickStepStrategy;
1577 virtual double getTickStep(
const QCPRange &range);
1578 virtual int getSubTickCount(
double tickStep);
1579 virtual QString getTickLabel(
double tick,
const QLocale &locale, QChar formatChar,
int precision);
1580 virtual QVector<double> createTickVector(
double tickStep,
const QCPRange &range);
1581 virtual QVector<double> createSubTickVector(
int subTickCount,
const QVector<double> &ticks);
1582 virtual QVector<QString> createLabelVector(
const QVector<double> &ticks,
const QLocale &locale, QChar formatChar,
int precision);
1585 void trimTicks(
const QCPRange &range, QVector<double> &ticks,
bool keepOneOutlier)
const;
1586 double pickClosest(
double target,
const QVector<double> &candidates)
const;
1587 double getMantissa(
double input,
double *magnitude=0)
const;
1588 double cleanMantissa(
double input)
const;
1591 Q_DISABLE_COPY(QCPAxisTicker)
1595Q_DECLARE_METATYPE(QSharedPointer<QCPAxisTicker>)
1609 QString dateTimeFormat()
const {
return mDateTimeFormat; }
1610 Qt::TimeSpec dateTimeSpec()
const {
return mDateTimeSpec; }
1626 Qt::TimeSpec mDateTimeSpec;
1629 enum DateStrategy {dsNone, dsUniformTimeInDay, dsUniformDayInMonth} mDateStrategy;
1632 virtual double getTickStep(
const QCPRange &range) Q_DECL_OVERRIDE;
1633 virtual int getSubTickCount(
double tickStep) Q_DECL_OVERRIDE;
1634 virtual QString getTickLabel(
double tick,
const QLocale &locale,
QChar formatChar,
int precision) Q_DECL_OVERRIDE;
1664 QString timeFormat()
const {
return mTimeFormat; }
1665 int fieldWidth(TimeUnit unit)
const {
return mFieldWidth.value(unit); }
1668 void setTimeFormat(
const QString &format);
1669 void setFieldWidth(TimeUnit unit,
int width);
1673 QString mTimeFormat;
1674 QHash<TimeUnit, int> mFieldWidth;
1677 TimeUnit mSmallestUnit, mBiggestUnit;
1678 QHash<TimeUnit, QString> mFormatPattern;
1681 virtual double getTickStep(
const QCPRange &range) Q_DECL_OVERRIDE;
1682 virtual int getSubTickCount(
double tickStep) Q_DECL_OVERRIDE;
1683 virtual QString getTickLabel(
double tick,
const QLocale &locale, QChar formatChar,
int precision) Q_DECL_OVERRIDE;
1686 void replaceUnit(QString &text, TimeUnit unit,
int value)
const;
1710 Q_ENUMS(ScaleStrategy)
1715 double tickStep()
const {
return mTickStep; }
1716 ScaleStrategy scaleStrategy()
const {
return mScaleStrategy; }
1719 void setTickStep(
double step);
1720 void setScaleStrategy(ScaleStrategy strategy);
1725 ScaleStrategy mScaleStrategy;
1728 virtual double getTickStep(
const QCPRange &range) Q_DECL_OVERRIDE;
1745 int subTickCount()
const {
return mSubTickCount; }
1748 void setTicks(
const QMap<double, QString> &ticks);
1749 void setTicks(
const QVector<double> &positions,
const QVector<QString> &labels);
1750 void setSubTickCount(
int subTicks);
1754 void addTick(
double position,
const QString &label);
1755 void addTicks(
const QMap<double, QString> &ticks);
1756 void addTicks(
const QVector<double> &positions,
const QVector<QString> &labels);
1760 QMap<double, QString> mTicks;
1764 virtual double getTickStep(
const QCPRange &range) Q_DECL_OVERRIDE;
1765 virtual int getSubTickCount(
double tickStep) Q_DECL_OVERRIDE;
1766 virtual QString getTickLabel(
double tick,
const QLocale &locale, QChar formatChar,
int precision) Q_DECL_OVERRIDE;
1767 virtual QVector<double> createTickVector(
double tickStep,
const QCPRange &range) Q_DECL_OVERRIDE;
1789 Q_ENUMS(FractionStyle)
1794 QString piSymbol()
const {
return mPiSymbol; }
1795 double piValue()
const {
return mPiValue; }
1796 bool periodicity()
const {
return mPeriodicity; }
1797 FractionStyle fractionStyle()
const {
return mFractionStyle; }
1800 void setPiSymbol(QString symbol);
1801 void setPiValue(
double pi);
1802 void setPeriodicity(
int multiplesOfPi);
1803 void setFractionStyle(FractionStyle style);
1810 FractionStyle mFractionStyle;
1816 virtual double getTickStep(
const QCPRange &range) Q_DECL_OVERRIDE;
1817 virtual int getSubTickCount(
double tickStep) Q_DECL_OVERRIDE;
1818 virtual QString getTickLabel(
double tick,
const QLocale &locale, QChar formatChar,
int precision) Q_DECL_OVERRIDE;
1821 void simplifyFraction(
int &numerator,
int &denominator)
const;
1822 QString fractionToString(
int numerator,
int denominator)
const;
1823 QString unicodeFraction(
int numerator,
int denominator)
const;
1824 QString unicodeSuperscript(
int number)
const;
1825 QString unicodeSubscript(
int number)
const;
1841 double logBase()
const {
return mLogBase; }
1842 int subTickCount()
const {
return mSubTickCount; }
1854 double mLogBaseLnInv;
1857 virtual double getTickStep(
const QCPRange &range) Q_DECL_OVERRIDE;
1858 virtual int getSubTickCount(
double tickStep) Q_DECL_OVERRIDE;
1880 explicit QCPGrid(QCPAxis *parentAxis);
1883 bool subGridVisible()
const {
return mSubGridVisible; }
1884 bool antialiasedSubGrid()
const {
return mAntialiasedSubGrid; }
1885 bool antialiasedZeroLine()
const {
return mAntialiasedZeroLine; }
1886 QPen pen()
const {
return mPen; }
1887 QPen subGridPen()
const {
return mSubGridPen; }
1888 QPen zeroLinePen()
const {
return mZeroLinePen; }
1900 bool mSubGridVisible;
1901 bool mAntialiasedSubGrid, mAntialiasedZeroLine;
1902 QPen mPen, mSubGridPen, mZeroLinePen;
1905 QCPAxis *mParentAxis;
1908 virtual void applyDefaultAntialiasingHint(
QCPPainter *painter)
const Q_DECL_OVERRIDE;
1909 virtual void draw(
QCPPainter *painter) Q_DECL_OVERRIDE;
1912 void drawGridLines(
QCPPainter *painter)
const;
1913 void drawSubGridLines(
QCPPainter *painter)
const;
1915 friend class QCPAxis;
1923 Q_PROPERTY(
AxisType axisType READ axisType)
1924 Q_PROPERTY(QCPAxisRect* axisRect READ axisRect)
1929 Q_PROPERTY(
bool ticks READ ticks WRITE
setTicks)
1930 Q_PROPERTY(
bool tickLabels READ tickLabels WRITE
setTickLabels)
1942 Q_PROPERTY(
bool subTicks READ subTicks WRITE
setSubTicks)
1952 Q_PROPERTY(
int padding READ padding WRITE
setPadding)
1953 Q_PROPERTY(
int offset READ offset WRITE
setOffset)
1965 Q_PROPERTY(QCPGrid*
grid READ
grid)
1979 Q_DECLARE_FLAGS(AxisTypes, AxisType)
2006 Q_ENUMS(SelectablePart)
2007 Q_FLAGS(SelectableParts)
2008 Q_DECLARE_FLAGS(SelectableParts, SelectablePart)
2014 AxisType axisType()
const {
return mAxisType; }
2015 QCPAxisRect *axisRect()
const {
return mAxisRect; }
2016 ScaleType scaleType()
const {
return mScaleType; }
2017 const QCPRange range()
const {
return mRange; }
2018 bool rangeReversed()
const {
return mRangeReversed; }
2019 QSharedPointer<QCPAxisTicker>
ticker()
const {
return mTicker; }
2020 bool ticks()
const {
return mTicks; }
2021 bool tickLabels()
const {
return mTickLabels; }
2022 int tickLabelPadding()
const;
2023 QFont tickLabelFont()
const {
return mTickLabelFont; }
2024 QColor tickLabelColor()
const {
return mTickLabelColor; }
2025 double tickLabelRotation()
const;
2026 LabelSide tickLabelSide()
const;
2027 QString numberFormat()
const;
2028 int numberPrecision()
const {
return mNumberPrecision; }
2029 QVector<double> tickVector()
const {
return mTickVector; }
2030 QVector<QString> tickVectorLabels()
const {
return mTickVectorLabels; }
2031 int tickLengthIn()
const;
2032 int tickLengthOut()
const;
2033 bool subTicks()
const {
return mSubTicks; }
2034 int subTickLengthIn()
const;
2035 int subTickLengthOut()
const;
2036 QPen basePen()
const {
return mBasePen; }
2037 QPen tickPen()
const {
return mTickPen; }
2038 QPen subTickPen()
const {
return mSubTickPen; }
2039 QFont labelFont()
const {
return mLabelFont; }
2040 QColor labelColor()
const {
return mLabelColor; }
2041 QString label()
const {
return mLabel; }
2042 int labelPadding()
const;
2043 int padding()
const {
return mPadding; }
2045 SelectableParts selectedParts()
const {
return mSelectedParts; }
2046 SelectableParts selectableParts()
const {
return mSelectableParts; }
2047 QFont selectedTickLabelFont()
const {
return mSelectedTickLabelFont; }
2048 QFont selectedLabelFont()
const {
return mSelectedLabelFont; }
2049 QColor selectedTickLabelColor()
const {
return mSelectedTickLabelColor; }
2050 QColor selectedLabelColor()
const {
return mSelectedLabelColor; }
2051 QPen selectedBasePen()
const {
return mSelectedBasePen; }
2052 QPen selectedTickPen()
const {
return mSelectedTickPen; }
2053 QPen selectedSubTickPen()
const {
return mSelectedSubTickPen; }
2054 QCPLineEnding lowerEnding()
const;
2055 QCPLineEnding upperEnding()
const;
2056 QCPGrid *
grid()
const {
return mGrid; }
2060 Q_SLOT
void setRange(
const QCPRange &range);
2061 void setRange(
double lower,
double upper);
2062 void setRange(
double position,
double size, Qt::AlignmentFlag alignment);
2063 void setRangeLower(
double lower);
2064 void setRangeUpper(
double upper);
2065 void setRangeReversed(
bool reversed);
2066 void setTicker(QSharedPointer<QCPAxisTicker> ticker);
2067 void setTicks(
bool show);
2068 void setTickLabels(
bool show);
2069 void setTickLabelPadding(
int padding);
2070 void setTickLabelFont(
const QFont &font);
2071 void setTickLabelColor(
const QColor &color);
2072 void setTickLabelRotation(
double degrees);
2073 void setTickLabelSide(LabelSide side);
2074 void setNumberFormat(
const QString &formatCode);
2075 void setNumberPrecision(
int precision);
2076 void setTickLength(
int inside,
int outside=0);
2077 void setTickLengthIn(
int inside);
2078 void setTickLengthOut(
int outside);
2079 void setSubTicks(
bool show);
2080 void setSubTickLength(
int inside,
int outside=0);
2081 void setSubTickLengthIn(
int inside);
2082 void setSubTickLengthOut(
int outside);
2083 void setBasePen(
const QPen &pen);
2084 void setTickPen(
const QPen &pen);
2085 void setSubTickPen(
const QPen &pen);
2086 void setLabelFont(
const QFont &font);
2087 void setLabelColor(
const QColor &color);
2088 void setLabel(
const QString &str);
2089 void setLabelPadding(
int padding);
2090 void setPadding(
int padding);
2091 void setOffset(
int offset);
2092 void setSelectedTickLabelFont(
const QFont &font);
2093 void setSelectedLabelFont(
const QFont &font);
2094 void setSelectedTickLabelColor(
const QColor &color);
2095 void setSelectedLabelColor(
const QColor &color);
2096 void setSelectedBasePen(
const QPen &pen);
2097 void setSelectedTickPen(
const QPen &pen);
2098 void setSelectedSubTickPen(
const QPen &pen);
2099 Q_SLOT
void setSelectableParts(
const QCPAxis::SelectableParts &selectableParts);
2100 Q_SLOT
void setSelectedParts(
const QCPAxis::SelectableParts &selectedParts);
2105 virtual double selectTest(
const QPointF &pos,
bool onlySelectable,
QVariant *details=0) const Q_DECL_OVERRIDE;
2110 void moveRange(
double diff);
2111 void scaleRange(
double factor);
2112 void scaleRange(
double factor,
double center);
2113 void setScaleRatio(
const QCPAxis *otherAxis,
double ratio=1.0);
2114 void rescale(
bool onlyVisiblePlottables=
false);
2115 double pixelToCoord(
double value)
const;
2116 double coordToPixel(
double value)
const;
2117 SelectablePart getPartAt(
const QPointF &pos)
const;
2124 static AxisType opposite(AxisType type);
2137 QCPAxisRect *mAxisRect;
2140 Qt::Orientation mOrientation;
2141 SelectableParts mSelectableParts, mSelectedParts;
2142 QPen mBasePen, mSelectedBasePen;
2147 QFont mLabelFont, mSelectedLabelFont;
2148 QColor mLabelColor, mSelectedLabelColor;
2153 QFont mTickLabelFont, mSelectedTickLabelFont;
2154 QColor mTickLabelColor, mSelectedTickLabelColor;
2155 int mNumberPrecision;
2156 QLatin1Char mNumberFormatChar;
2157 bool mNumberBeautifulPowers;
2163 QPen mTickPen, mSelectedTickPen;
2164 QPen mSubTickPen, mSelectedSubTickPen;
2167 bool mRangeReversed;
2173 QSharedPointer<QCPAxisTicker> mTicker;
2177 bool mCachedMarginValid;
2181 QCP::AntialiasedElements mAADragBackup, mNotAADragBackup;
2184 virtual int calculateMargin();
2187 virtual void applyDefaultAntialiasingHint(
QCPPainter *painter)
const Q_DECL_OVERRIDE;
2188 virtual void draw(
QCPPainter *painter) Q_DECL_OVERRIDE;
2191 virtual
void selectEvent(
QMouseEvent *event,
bool additive, const
QVariant &details,
bool *selectionStateChanged) Q_DECL_OVERRIDE;
2192 virtual
void deselectEvent(
bool *selectionStateChanged) Q_DECL_OVERRIDE;
2200 void setupTickVectors();
2201 QPen getBasePen() const;
2202 QPen getTickPen() const;
2203 QPen getSubTickPen() const;
2204 QFont getTickLabelFont() const;
2205 QFont getLabelFont() const;
2206 QColor getTickLabelColor() const;
2207 QColor getLabelColor() const;
2212 friend class QCustomPlot;
2213 friend class QCPGrid;
2214 friend class QCPAxisRect;
2216Q_DECLARE_OPERATORS_FOR_FLAGS(
QCPAxis::SelectableParts)
2217Q_DECLARE_OPERATORS_FOR_FLAGS(
QCPAxis::AxisTypes)
2231 virtual int size()
const;
2234 QRect axisSelectionBox()
const {
return mAxisSelectionBox; }
2235 QRect tickLabelsSelectionBox()
const {
return mTickLabelsSelectionBox; }
2236 QRect labelSelectionBox()
const {
return mLabelSelectionBox; }
2246 int tickLabelPadding;
2247 double tickLabelRotation;
2249 bool substituteExponent;
2250 bool numberMultiplyCross;
2251 int tickLengthIn, tickLengthOut, subTickLengthIn, subTickLengthOut;
2252 QPen tickPen, subTickPen;
2253 QFont tickLabelFont;
2255 QRect axisRect, viewportRect;
2257 bool abbreviateDecimalPowers;
2258 bool reversedEndings;
2272 QString basePart, expPart, suffixPart;
2273 QRect baseBounds, expBounds, suffixBounds, totalBounds, rotatedTotalBounds;
2274 QFont baseFont, expFont;
2279 QRect mAxisSelectionBox, mTickLabelsSelectionBox, mLabelSelectionBox;
2281 virtual QByteArray generateLabelParameterHash()
const;
2283 virtual void placeTickLabel(
QCPPainter *painter,
double position,
int distanceToAxis,
const QString &text, QSize *tickLabelsSize);
2287 virtual void getMaxTickLabelSize(
const QFont &font,
const QString &text, QSize *tickLabelsSize)
const;
2315 Q_ENUMS(ScatterProperty)
2316 Q_FLAGS(ScatterProperties)
2317 Q_DECLARE_FLAGS(ScatterProperties, ScatterProperty)
2345 Q_ENUMS(ScatterShape)
2356 double size()
const {
return mSize; }
2357 ScatterShape shape()
const {
return mShape; }
2358 QPen pen()
const {
return mPen; }
2359 QBrush brush()
const {
return mBrush; }
2360 QPixmap pixmap()
const {
return mPixmap; }
2361 QPainterPath customPath()
const {
return mCustomPath; }
2364 void setFromOther(
const QCPScatterStyle &other, ScatterProperties properties);
2365 void setSize(
double size);
2366 void setShape(ScatterShape shape);
2367 void setPen(
const QPen &pen);
2368 void setBrush(
const QBrush &brush);
2369 void setPixmap(
const QPixmap &pixmap);
2370 void setCustomPath(
const QPainterPath &customPath);
2378 void drawShape(
QCPPainter *painter,
double x,
double y)
const;
2383 ScatterShape mShape;
2392Q_DECLARE_TYPEINFO(QCPScatterStyle, Q_MOVABLE_TYPE);
2393Q_DECLARE_OPERATORS_FOR_FLAGS(QCPScatterStyle::ScatterProperties)
2408template <
class DataType>
2409inline bool qcpLessThanSortKey(
const DataType &a,
const DataType &b) {
return a.sortKey() < b.sortKey(); }
2411template <
class DataType>
2421 int size()
const {
return mData.size()-mPreallocSize; }
2423 bool autoSqueeze()
const {
return mAutoSqueeze; }
2433 void add(
const DataType &data);
2436 void remove(
double sortKeyFrom,
double sortKeyTo);
2440 void squeeze(
bool preAllocation=
true,
bool postAllocation=
true);
2442 const_iterator
constBegin()
const {
return mData.constBegin()+mPreallocSize; }
2443 const_iterator
constEnd()
const {
return mData.constEnd(); }
2444 iterator
begin() {
return mData.begin()+mPreallocSize; }
2445 iterator
end() {
return mData.end(); }
2446 const_iterator
findBegin(
double sortKey,
bool expandedRange=
true)
const;
2447 const_iterator
findEnd(
double sortKey,
bool expandedRange=
true)
const;
2461 int mPreallocIteration;
2464 void preallocateGrow(
int minimumPreallocSize);
2465 void performAutoSqueeze();
2606template <
class DataType>
2610 mPreallocIteration(0)
2622template <
class DataType>
2625 if (mAutoSqueeze != enabled)
2627 mAutoSqueeze = enabled;
2629 performAutoSqueeze();
2639template <
class DataType>
2655template <
class DataType>
2660 mPreallocIteration = 0;
2671template <
class DataType>
2677 const int n = data.
size();
2678 const int oldSize =
size();
2682 if (mPreallocSize < n)
2688 mData.resize(mData.size()+n);
2703template <
class DataType>
2710 set(data, alreadySorted);
2714 const int n = data.size();
2715 const int oldSize =
size();
2719 if (mPreallocSize < n)
2722 std::copy(data.constBegin(), data.constEnd(),
begin());
2725 mData.resize(mData.size()+n);
2726 std::copy(data.constBegin(), data.constEnd(),
end()-n);
2740template <
class DataType>
2748 if (mPreallocSize < 1)
2755 mData.insert(insertionPoint, data);
2764template <
class DataType>
2767 QCPDataContainer<DataType>::iterator it =
begin();
2769 mPreallocSize += itEnd-it;
2771 performAutoSqueeze();
2779template <
class DataType>
2783 QCPDataContainer<DataType>::iterator itEnd =
end();
2784 mData.erase(it, itEnd);
2786 performAutoSqueeze();
2796template <
class DataType>
2799 if (sortKeyFrom >= sortKeyTo ||
isEmpty())
2804 mData.erase(it, itEnd);
2806 performAutoSqueeze();
2818template <
class DataType>
2822 if (it !=
end() && it->sortKey() == sortKey)
2830 performAutoSqueeze();
2838template <
class DataType>
2842 mPreallocIteration = 0;
2857template <
class DataType>
2873template <
class DataType>
2878 if (mPreallocSize > 0)
2880 std::copy(
begin(),
end(), mData.begin());
2881 mData.resize(
size());
2884 mPreallocIteration = 0;
2905template <
class DataType>
2932template <
class DataType>
2939 if (expandedRange && it !=
constEnd())
2959template <
class DataType>
2968 bool haveLower =
false;
2969 bool haveUpper =
false;
2972 QCPDataContainer<DataType>::const_iterator it =
constBegin();
2973 QCPDataContainer<DataType>::const_iterator itEnd =
constEnd();
2976 if (DataType::sortKeyIsMainKey())
2980 if (!qIsNaN(it->mainValue()))
2982 range.lower = it->mainKey();
2992 if (!qIsNaN(it->mainValue()))
2994 range.upper = it->mainKey();
3003 if (!qIsNaN(it->mainValue()))
3005 current = it->mainKey();
3006 if (current < range.lower || !haveLower)
3008 range.lower = current;
3011 if (current > range.upper || !haveUpper)
3013 range.upper = current;
3024 if (!qIsNaN(it->mainValue()))
3026 current = it->mainKey();
3027 if ((current < range.lower || !haveLower) && current < 0)
3029 range.lower = current;
3032 if ((current > range.upper || !haveUpper) && current < 0)
3034 range.upper = current;
3044 if (!qIsNaN(it->mainValue()))
3046 current = it->mainKey();
3047 if ((current < range.lower || !haveLower) && current > 0)
3049 range.lower = current;
3052 if ((current > range.upper || !haveUpper) && current > 0)
3054 range.upper = current;
3062 foundRange = haveLower && haveUpper;
3082template <
class DataType>
3091 const bool restrictKeyRange = inKeyRange !=
QCPRange();
3092 bool haveLower =
false;
3093 bool haveUpper =
false;
3095 QCPDataContainer<DataType>::const_iterator itBegin =
constBegin();
3096 QCPDataContainer<DataType>::const_iterator itEnd =
constEnd();
3097 if (DataType::sortKeyIsMainKey() && restrictKeyRange)
3100 itEnd =
findEnd(inKeyRange.upper);
3104 for (QCPDataContainer<DataType>::const_iterator it = itBegin; it != itEnd; ++it)
3106 if (restrictKeyRange && (it->mainKey() < inKeyRange.lower || it->mainKey() > inKeyRange.upper))
3108 current = it->valueRange();
3109 if ((current.lower < range.lower || !haveLower) && !qIsNaN(current.lower))
3111 range.lower = current.lower;
3114 if ((current.upper > range.upper || !haveUpper) && !qIsNaN(current.upper))
3116 range.upper = current.upper;
3122 for (QCPDataContainer<DataType>::const_iterator it = itBegin; it != itEnd; ++it)
3124 if (restrictKeyRange && (it->mainKey() < inKeyRange.lower || it->mainKey() > inKeyRange.upper))
3126 current = it->valueRange();
3127 if ((current.lower < range.lower || !haveLower) && current.lower < 0 && !qIsNaN(current.lower))
3129 range.lower = current.lower;
3132 if ((current.upper > range.upper || !haveUpper) && current.upper < 0 && !qIsNaN(current.upper))
3134 range.upper = current.upper;
3140 for (QCPDataContainer<DataType>::const_iterator it = itBegin; it != itEnd; ++it)
3142 if (restrictKeyRange && (it->mainKey() < inKeyRange.lower || it->mainKey() > inKeyRange.upper))
3144 current = it->valueRange();
3145 if ((current.lower < range.lower || !haveLower) && current.lower > 0 && !qIsNaN(current.lower))
3147 range.lower = current.lower;
3150 if ((current.upper > range.upper || !haveUpper) && current.upper > 0 && !qIsNaN(current.upper))
3152 range.upper = current.upper;
3158 foundRange = haveLower && haveUpper;
3170template <
class DataType>
3174 iteratorRange = iteratorRange.
bounded(
dataRange.bounded(this->dataRange()));
3188template <
class DataType>
3189void QCPDataContainer<DataType>::preallocateGrow(
int minimumPreallocSize)
3191 if (minimumPreallocSize <= mPreallocSize)
3194 int newPreallocSize = minimumPreallocSize;
3195 newPreallocSize += (1u<<qBound(4, mPreallocIteration+4, 15)) - 12;
3196 ++mPreallocIteration;
3198 int sizeDifference = newPreallocSize-mPreallocSize;
3199 mData.resize(mData.size()+sizeDifference);
3200 std::copy_backward(mData.begin()+mPreallocSize, mData.end()-sizeDifference, mData.end());
3201 mPreallocSize = newPreallocSize;
3218template <
class DataType>
3219void QCPDataContainer<DataType>::performAutoSqueeze()
3221 const int totalAlloc = mData.capacity();
3222 const int postAllocSize = totalAlloc-mData.size();
3223 const int usedSize = size();
3224 bool shrinkPostAllocation =
false;
3225 bool shrinkPreAllocation =
false;
3226 if (totalAlloc > 650000)
3228 shrinkPostAllocation = postAllocSize > usedSize*1.5;
3229 shrinkPreAllocation = mPreallocSize*10 > usedSize;
3230 }
else if (totalAlloc > 1000)
3232 shrinkPostAllocation = postAllocSize > usedSize*5;
3233 shrinkPreAllocation = mPreallocSize > usedSize*1.5;
3236 if (shrinkPreAllocation || shrinkPostAllocation)
3237 squeeze(shrinkPreAllocation, shrinkPostAllocation);
3256 QPen pen()
const {
return mPen; }
3257 QBrush brush()
const {
return mBrush; }
3259 QCPScatterStyle::ScatterProperties usedScatterProperties()
const {
return mUsedScatterProperties; }
3281 QCPScatterStyle::ScatterProperties mUsedScatterProperties;
3283 QCPAbstractPlottable *mPlottable;
3286 virtual bool registerWithPlottable(QCPAbstractPlottable *plottable);
3290 friend class QCPAbstractPlottable;
3304 Q_PROPERTY(QCPAxis* keyAxis READ keyAxis WRITE
setKeyAxis)
3305 Q_PROPERTY(QCPAxis* valueAxis READ valueAxis WRITE
setValueAxis)
3315 QString name()
const {
return mName; }
3316 bool antialiasedFill()
const {
return mAntialiasedFill; }
3317 bool antialiasedScatters()
const {
return mAntialiasedScatters; }
3318 QPen pen()
const {
return mPen; }
3319 QBrush brush()
const {
return mBrush; }
3320 QCPAxis *keyAxis()
const {
return mKeyAxis.data(); }
3321 QCPAxis *valueAxis()
const {
return mValueAxis.data(); }
3323 bool selected()
const {
return !mSelection.isEmpty(); }
3346 void coordsToPixels(
double key,
double value,
double &x,
double &y)
const;
3348 void pixelsToCoords(
double x,
double y,
double &key,
double &value)
const;
3352 void rescaleValueAxis(
bool onlyEnlarge=
false,
bool inKeyRange=
false)
const;
3366 bool mAntialiasedFill, mAntialiasedScatters;
3369 QPointer<QCPAxis> mKeyAxis, mValueAxis;
3375 virtual QRect clipRect() const Q_DECL_OVERRIDE;
3376 virtual
void draw(
QCPPainter *painter) Q_DECL_OVERRIDE = 0;
3377 virtual
QCP::Interaction selectionCategory() const Q_DECL_OVERRIDE;
3378 void applyDefaultAntialiasingHint(
QCPPainter *painter) const Q_DECL_OVERRIDE;
3380 virtual
void selectEvent(
QMouseEvent *event,
bool additive, const
QVariant &details,
bool *selectionStateChanged) Q_DECL_OVERRIDE;
3381 virtual
void deselectEvent(
bool *selectionStateChanged) Q_DECL_OVERRIDE;
3384 virtual
void drawLegendIcon(
QCPPainter *painter, const
QRectF &rect) const = 0;
3387 void applyFillAntialiasingHint(
QCPPainter *painter) const;
3388 void applyScattersAntialiasingHint(
QCPPainter *painter) const;
3393 friend class QCustomPlot;
3394 friend class QCPAxis;
3395 friend class QCPPlottableLegendItem;
3413 QString name()
const {
return mName; }
3424 QSet<QCPItemPosition*> mChildrenX, mChildrenY;
3462 Q_ENUMS(PositionType)
3469 PositionType typeX()
const {
return mPositionTypeX; }
3470 PositionType typeY()
const {
return mPositionTypeY; }
3472 QCPItemAnchor *parentAnchorX()
const {
return mParentAnchorX; }
3473 QCPItemAnchor *parentAnchorY()
const {
return mParentAnchorY; }
3474 double key()
const {
return mKey; }
3475 double value()
const {
return mValue; }
3476 QPointF coords()
const {
return QPointF(mKey, mValue); }
3477 QCPAxis *keyAxis()
const {
return mKeyAxis.data(); }
3478 QCPAxis *valueAxis()
const {
return mValueAxis.data(); }
3479 QCPAxisRect *axisRect()
const;
3480 virtual QPointF pixelPosition() const Q_DECL_OVERRIDE;
3483 void setType(PositionType type);
3484 void setTypeX(PositionType type);
3485 void setTypeY(PositionType type);
3486 bool setParentAnchor(QCPItemAnchor *parentAnchor,
bool keepPixelPosition=false);
3487 bool setParentAnchorX(QCPItemAnchor *parentAnchor,
bool keepPixelPosition=false);
3488 bool setParentAnchorY(QCPItemAnchor *parentAnchor,
bool keepPixelPosition=false);
3489 void setCoords(
double key,
double value);
3490 void setCoords(const QPointF &coords);
3491 void setAxes(QCPAxis* keyAxis, QCPAxis* valueAxis);
3492 void setAxisRect(QCPAxisRect *axisRect);
3493 void setPixelPosition(const QPointF &pixelPosition);
3497 PositionType mPositionTypeX, mPositionTypeY;
3498 QPointer<QCPAxis> mKeyAxis, mValueAxis;
3499 QPointer<QCPAxisRect> mAxisRect;
3500 double mKey, mValue;
3501 QCPItemAnchor *mParentAnchorX, *mParentAnchorY;
3518 Q_PROPERTY(QCPAxisRect* clipAxisRect READ clipAxisRect WRITE
setClipAxisRect)
3519 Q_PROPERTY(
bool selectable READ selectable WRITE
setSelectable NOTIFY selectableChanged)
3527 bool clipToAxisRect()
const {
return mClipToAxisRect; }
3528 QCPAxisRect *clipAxisRect()
const;
3529 bool selectable()
const {
return mSelectable; }
3530 bool selected()
const {
return mSelected; }
3546 bool hasAnchor(
const QString &name)
const;
3550 void selectableChanged(
bool selectable);
3554 bool mClipToAxisRect;
3555 QPointer<QCPAxisRect> mClipAxisRect;
3558 bool mSelectable, mSelected;
3562 virtual QRect clipRect() const Q_DECL_OVERRIDE;
3563 virtual
void applyDefaultAntialiasingHint(
QCPPainter *painter) const Q_DECL_OVERRIDE;
3564 virtual
void draw(
QCPPainter *painter) Q_DECL_OVERRIDE = 0;
3566 virtual
void selectEvent(
QMouseEvent *event,
bool additive, const
QVariant &details,
bool *selectionStateChanged) Q_DECL_OVERRIDE;
3567 virtual
void deselectEvent(
bool *selectionStateChanged) Q_DECL_OVERRIDE;
3570 virtual
QPointF anchorPixelPosition(
int anchorId) const;
3573 double rectDistance(const
QRectF &rect, const
QPointF &pos,
bool filledRect) const;
3575 QCPItemAnchor *createAnchor(const
QString &name,
int anchorId);
3580 friend class QCustomPlot;
3581 friend class QCPItemAnchor;
3594 Q_PROPERTY(QRect viewport READ viewport WRITE
setViewport)
3602 Q_PROPERTY(Qt::KeyboardModifier multiSelectModifier READ multiSelectModifier WRITE
setMultiSelectModifier)
3603 Q_PROPERTY(
bool openGl READ openGl WRITE
setOpenGl)
3614 Q_ENUMS(LayerInsertMode)
3626 Q_ENUMS(RefreshPriority)
3632 QRect viewport()
const {
return mViewport; }
3633 double bufferDevicePixelRatio()
const {
return mBufferDevicePixelRatio; }
3634 QPixmap background()
const {
return mBackgroundPixmap; }
3635 bool backgroundScaled()
const {
return mBackgroundScaled; }
3636 Qt::AspectRatioMode backgroundScaledMode()
const {
return mBackgroundScaledMode; }
3638 QCP::AntialiasedElements antialiasedElements()
const {
return mAntialiasedElements; }
3639 QCP::AntialiasedElements notAntialiasedElements()
const {
return mNotAntialiasedElements; }
3640 bool autoAddPlottableToLegend()
const {
return mAutoAddPlottableToLegend; }
3641 const QCP::Interactions interactions()
const {
return mInteractions; }
3642 int selectionTolerance()
const {
return mSelectionTolerance; }
3643 bool noAntialiasingOnDrag()
const {
return mNoAntialiasingOnDrag; }
3644 QCP::PlottingHints plottingHints()
const {
return mPlottingHints; }
3645 Qt::KeyboardModifier multiSelectModifier()
const {
return mMultiSelectModifier; }
3648 bool openGl()
const {
return mOpenGl; }
3651 void setViewport(
const QRect &rect);
3652 void setBufferDevicePixelRatio(
double ratio);
3653 void setBackground(
const QPixmap &pm);
3654 void setBackground(
const QPixmap &pm,
bool scaled, Qt::AspectRatioMode mode=Qt::KeepAspectRatioByExpanding);
3655 void setBackground(
const QBrush &brush);
3656 void setBackgroundScaled(
bool scaled);
3657 void setBackgroundScaledMode(Qt::AspectRatioMode mode);
3658 void setAntialiasedElements(
const QCP::AntialiasedElements &antialiasedElements);
3660 void setNotAntialiasedElements(
const QCP::AntialiasedElements ¬AntialiasedElements);
3662 void setAutoAddPlottableToLegend(
bool on);
3663 void setInteractions(
const QCP::Interactions &interactions);
3664 void setInteraction(
const QCP::Interaction &interaction,
bool enabled=
true);
3665 void setSelectionTolerance(
int pixels);
3666 void setNoAntialiasingOnDrag(
bool enabled);
3667 void setPlottingHints(
const QCP::PlottingHints &hints);
3669 void setMultiSelectModifier(Qt::KeyboardModifier modifier);
3672 void setOpenGl(
bool enabled,
int multisampling=16);
3679 bool removePlottable(
int index);
3680 int clearPlottables();
3681 int plottableCount()
const;
3691 bool removeGraph(
int index);
3693 int graphCount()
const;
3700 bool removeItem(
int index);
3702 int itemCount()
const;
3711 bool setCurrentLayer(
const QString &name);
3712 bool setCurrentLayer(
QCPLayer *layer);
3713 int layerCount()
const;
3714 bool addLayer(
const QString &name,
QCPLayer *otherLayer=0, LayerInsertMode insertMode=limAbove);
3716 bool moveLayer(
QCPLayer *layer,
QCPLayer *otherLayer, LayerInsertMode insertMode=limAbove);
3719 int axisRectCount()
const;
3724 Q_SLOT
void rescaleAxes(
bool onlyVisiblePlottables=
false);
3728 Q_SLOT
void deselectAll();
3735 QPixmap toPixmap(
int width=0,
int height=0,
double scale=1.0);
3736 void toPainter(
QCPPainter *painter,
int width=0,
int height=0);
3765 double mBufferDevicePixelRatio;
3767 bool mAutoAddPlottableToLegend;
3772 QCP::AntialiasedElements mAntialiasedElements, mNotAntialiasedElements;
3773 QCP::Interactions mInteractions;
3774 int mSelectionTolerance;
3775 bool mNoAntialiasingOnDrag;
3778 QPixmap mScaledBackgroundPixmap;
3779 bool mBackgroundScaled;
3780 Qt::AspectRatioMode mBackgroundScaledMode;
3781 QCPLayer *mCurrentLayer;
3782 QCP::PlottingHints mPlottingHints;
3783 Qt::KeyboardModifier mMultiSelectModifier;
3790 QPoint mMousePressPos;
3791 bool mMouseHasMoved;
3792 QPointer<QCPLayerable> mMouseEventLayerable;
3793 QPointer<QCPLayerable> mMouseSignalLayerable;
3794 QVariant mMouseEventLayerableDetails;
3795 QVariant mMouseSignalLayerableDetails;
3798 int mOpenGlMultisamples;
3799 QCP::AntialiasedElements mOpenGlAntialiasedElementsBackup;
3800 bool mOpenGlCacheLabelsBackup;
3801#ifdef QCP_OPENGL_FBO
3802 QSharedPointer<QOpenGLContext> mGlContext;
3803 QSharedPointer<QSurface> mGlSurface;
3804 QSharedPointer<QOpenGLPaintDevice> mGlPaintDevice;
3808 virtual QSize minimumSizeHint() const Q_DECL_OVERRIDE;
3809 virtual QSize sizeHint() const Q_DECL_OVERRIDE;
3810 virtual
void paintEvent(
QPaintEvent *event) Q_DECL_OVERRIDE;
3811 virtual
void resizeEvent(
QResizeEvent *event) Q_DECL_OVERRIDE;
3812 virtual
void mouseDoubleClickEvent(
QMouseEvent *event) Q_DECL_OVERRIDE;
3813 virtual
void mousePressEvent(
QMouseEvent *event) Q_DECL_OVERRIDE;
3814 virtual
void mouseMoveEvent(
QMouseEvent *event) Q_DECL_OVERRIDE;
3815 virtual
void mouseReleaseEvent(
QMouseEvent *event) Q_DECL_OVERRIDE;
3816 virtual
void wheelEvent(
QWheelEvent *event) Q_DECL_OVERRIDE;
3820 virtual
void updateLayout();
3821 virtual
void axisRemoved(QCPAxis *axis);
3822 virtual
void legendRemoved(QCPLegend *
legend);
3823 Q_SLOT virtual
void processRectSelection(QRect rect,
QMouseEvent *event);
3824 Q_SLOT virtual
void processRectZoom(QRect rect,
QMouseEvent *event);
3825 Q_SLOT virtual
void processPointSelection(
QMouseEvent *event);
3828 bool registerPlottable(QCPAbstractPlottable *
plottable);
3829 bool registerGraph(QCPGraph *
graph);
3830 bool registerItem(QCPAbstractItem*
item);
3831 void updateLayerIndices() const;
3835 void setupPaintBuffers();
3841 friend class QCPLegend;
3842 friend class QCPAxis;
3843 friend class QCPLayer;
3844 friend class QCPAxisRect;
3845 friend class QCPAbstractPlottable;
3846 friend class QCPGraph;
3847 friend class QCPAbstractItem;
3871 virtual int findBegin(
double sortKey,
bool expandedRange=
true)
const = 0;
3872 virtual int findEnd(
double sortKey,
bool expandedRange=
true)
const = 0;
3875template <
class DataType>
3893 virtual
int findBegin(
double sortKey,
bool expandedRange=true) const Q_DECL_OVERRIDE;
3894 virtual
int findEnd(
double sortKey,
bool expandedRange=true) const Q_DECL_OVERRIDE;
3902 QSharedPointer<QCPDataContainer<DataType> > mDataContainer;
4103template <
class DataType>
4110template <
class DataType>
4111QCPAbstractPlottable1D<DataType>::~QCPAbstractPlottable1D()
4118template <
class DataType>
4121 return mDataContainer->size();
4127template <
class DataType>
4130 if (index >= 0 && index < mDataContainer->size())
4132 return (mDataContainer->constBegin()+index)->mainKey();
4135 qDebug() << Q_FUNC_INFO <<
"Index out of bounds" << index;
4143template <
class DataType>
4146 if (index >= 0 && index < mDataContainer->size())
4148 return (mDataContainer->constBegin()+index)->sortKey();
4151 qDebug() << Q_FUNC_INFO <<
"Index out of bounds" << index;
4159template <
class DataType>
4162 if (index >= 0 && index < mDataContainer->size())
4164 return (mDataContainer->constBegin()+index)->mainValue();
4167 qDebug() << Q_FUNC_INFO <<
"Index out of bounds" << index;
4175template <
class DataType>
4178 if (index >= 0 && index < mDataContainer->size())
4180 return (mDataContainer->constBegin()+index)->valueRange();
4183 qDebug() << Q_FUNC_INFO <<
"Index out of bounds" << index;
4191template <
class DataType>
4194 if (index >= 0 && index < mDataContainer->size())
4196 const typename QCPDataContainer<DataType>::const_iterator it = mDataContainer->constBegin()+index;
4200 qDebug() << Q_FUNC_INFO <<
"Index out of bounds" << index;
4208template <
class DataType>
4211 return DataType::sortKeyIsMainKey();
4221template <
class DataType>
4225 if ((onlySelectable && mSelectable ==
QCP::stNone) || mDataContainer->isEmpty())
4227 if (!mKeyAxis || !mValueAxis)
4231 double key1, value1, key2, value2;
4235 QCPRange valueRange(value1, value2);
4236 typename QCPDataContainer<DataType>::const_iterator begin = mDataContainer->constBegin();
4237 typename QCPDataContainer<DataType>::const_iterator end = mDataContainer->constEnd();
4238 if (DataType::sortKeyIsMainKey())
4240 begin = mDataContainer->findBegin(keyRange.lower,
false);
4241 end = mDataContainer->findEnd(keyRange.upper,
false);
4246 int currentSegmentBegin = -1;
4247 for (
typename QCPDataContainer<DataType>::const_iterator it=begin; it!=end; ++it)
4249 if (currentSegmentBegin == -1)
4251 if (valueRange.
contains(it->mainValue()) && keyRange.
contains(it->mainKey()))
4252 currentSegmentBegin = it-mDataContainer->constBegin();
4253 }
else if (!valueRange.
contains(it->mainValue()) || !keyRange.
contains(it->mainKey()))
4256 currentSegmentBegin = -1;
4260 if (currentSegmentBegin != -1)
4270template <
class DataType>
4273 return mDataContainer->findBegin(sortKey, expandedRange)-mDataContainer->constBegin();
4279template <
class DataType>
4282 return mDataContainer->findEnd(sortKey, expandedRange)-mDataContainer->constBegin();
4295template <
class DataType>
4298 if ((onlySelectable && mSelectable ==
QCP::stNone) || mDataContainer->isEmpty())
4300 if (!mKeyAxis || !mValueAxis)
4304 double minDistSqr = (std::numeric_limits<double>::max)();
4305 int minDistIndex = mDataContainer->size();
4307 typename QCPDataContainer<DataType>::const_iterator begin = mDataContainer->constBegin();
4308 typename QCPDataContainer<DataType>::const_iterator end = mDataContainer->constEnd();
4309 if (DataType::sortKeyIsMainKey())
4312 double posKeyMin, posKeyMax, dummy;
4313 pixelsToCoords(pos-
QPointF(mParentPlot->selectionTolerance(), mParentPlot->selectionTolerance()), posKeyMin, dummy);
4314 pixelsToCoords(pos+
QPointF(mParentPlot->selectionTolerance(), mParentPlot->selectionTolerance()), posKeyMax, dummy);
4315 if (posKeyMin > posKeyMax)
4316 qSwap(posKeyMin, posKeyMax);
4317 begin = mDataContainer->findBegin(posKeyMin,
true);
4318 end = mDataContainer->findEnd(posKeyMax,
true);
4322 QCPRange keyRange(mKeyAxis->range());
4323 QCPRange valueRange(mValueAxis->range());
4324 for (
typename QCPDataContainer<DataType>::const_iterator it=begin; it!=end; ++it)
4326 const double mainKey = it->mainKey();
4327 const double mainValue = it->mainValue();
4331 if (currentDistSqr < minDistSqr)
4333 minDistSqr = currentDistSqr;
4334 minDistIndex = it-mDataContainer->constBegin();
4338 if (minDistIndex != mDataContainer->size())
4343 details->setValue(selectionResult);
4344 return qSqrt(minDistSqr);
4357template <
class DataType>
4360 selectedSegments.clear();
4361 unselectedSegments.clear();
4387template <
class DataType>
4392 painter->pen().style() == Qt::SolidLine &&
4397 bool lastIsNan =
false;
4398 const int lineDataSize = lineData.size();
4399 while (i < lineDataSize && (qIsNaN(lineData.at(i).y()) || qIsNaN(lineData.at(i).x())))
4402 while (i < lineDataSize)
4404 if (!qIsNaN(lineData.at(i).y()) && !qIsNaN(lineData.at(i).x()))
4407 painter->
drawLine(lineData.at(i-1), lineData.at(i));
4416 int segmentStart = 0;
4418 const int lineDataSize = lineData.size();
4419 while (i < lineDataSize)
4421 if (qIsNaN(lineData.at(i).y()) || qIsNaN(lineData.at(i).x()) || qIsInf(lineData.at(i).y()))
4423 painter->drawPolyline(lineData.constData()+segmentStart, i-segmentStart);
4429 painter->drawPolyline(lineData.constData()+segmentStart, lineDataSize-segmentStart);
4453 Q_ENUMS(ColorInterpolation)
4472 Q_ENUMS(GradientPreset)
4477 bool operator!=(
const QCPColorGradient &other)
const {
return !(*
this == other); }
4480 int levelCount()
const {
return mLevelCount; }
4481 QMap<double, QColor> colorStops()
const {
return mColorStops; }
4482 ColorInterpolation colorInterpolation()
const {
return mColorInterpolation; }
4483 bool periodic()
const {
return mPeriodic; }
4486 void setLevelCount(
int n);
4487 void setColorStops(
const QMap<double, QColor> &colorStops);
4488 void setColorStopAt(
double position,
const QColor &color);
4489 void setColorInterpolation(ColorInterpolation interpolation);
4490 void setPeriodic(
bool enabled);
4493 void colorize(
const double *data,
const QCPRange &range, QRgb *scanLine,
int n,
int dataIndexFactor=1,
bool logarithmic=
false);
4494 void colorize(
const double *data,
const unsigned char *alpha,
const QCPRange &range, QRgb *scanLine,
int n,
int dataIndexFactor=1,
bool logarithmic=
false);
4495 QRgb color(
double position,
const QCPRange &range,
bool logarithmic=
false);
4496 void loadPreset(GradientPreset preset);
4497 void clearColorStops();
4498 QCPColorGradient inverted()
const;
4503 QMap<double, QColor> mColorStops;
4504 ColorInterpolation mColorInterpolation;
4508 QVector<QRgb> mColorBuffer;
4509 bool mColorBufferInvalidated;
4512 bool stopsUseAlpha()
const;
4513 void updateColorBuffer();
4541 Q_ENUMS(BracketStyle)
4547 QPen bracketPen()
const {
return mBracketPen; }
4548 QBrush bracketBrush()
const {
return mBracketBrush; }
4549 int bracketWidth()
const {
return mBracketWidth; }
4550 int bracketHeight()
const {
return mBracketHeight; }
4551 BracketStyle bracketStyle()
const {
return mBracketStyle; }
4552 bool tangentToData()
const {
return mTangentToData; }
4553 int tangentAverage()
const {
return mTangentAverage; }
4556 void setBracketPen(
const QPen &pen);
4557 void setBracketBrush(
const QBrush &brush);
4558 void setBracketWidth(
int width);
4559 void setBracketHeight(
int height);
4560 void setBracketStyle(BracketStyle style);
4561 void setTangentToData(
bool enabled);
4562 void setTangentAverage(
int pointCount);
4565 virtual void drawBracket(
QCPPainter *painter,
int direction)
const;
4576 BracketStyle mBracketStyle;
4577 bool mTangentToData;
4578 int mTangentAverage;
4600 Q_PROPERTY(Qt::Orientations rangeDrag READ rangeDrag WRITE
setRangeDrag)
4601 Q_PROPERTY(Qt::Orientations rangeZoom READ rangeZoom WRITE
setRangeZoom)
4604 explicit QCPAxisRect(QCustomPlot *parentPlot,
bool setupDefaultAxes=
true);
4608 QPixmap background()
const {
return mBackgroundPixmap; }
4609 QBrush backgroundBrush()
const {
return mBackgroundBrush; }
4610 bool backgroundScaled()
const {
return mBackgroundScaled; }
4611 Qt::AspectRatioMode backgroundScaledMode()
const {
return mBackgroundScaledMode; }
4612 Qt::Orientations rangeDrag()
const {
return mRangeDrag; }
4613 Qt::Orientations rangeZoom()
const {
return mRangeZoom; }
4622 void setBackground(
const QPixmap &pm,
bool scaled, Qt::AspectRatioMode mode=Qt::KeepAspectRatioByExpanding);
4647 void zoom(
const QRectF &pixelRect);
4649 void setupFullAxesBox(
bool connectRanges=
false);
4655 int left()
const {
return mRect.left(); }
4656 int right()
const {
return mRect.right(); }
4657 int top()
const {
return mRect.top(); }
4658 int bottom()
const {
return mRect.bottom(); }
4659 int width()
const {
return mRect.width(); }
4660 int height()
const {
return mRect.height(); }
4661 QSize
size()
const {
return mRect.size(); }
4662 QPoint
topLeft()
const {
return mRect.topLeft(); }
4666 QPoint
center()
const {
return mRect.center(); }
4669 virtual void update(UpdatePhase phase) Q_DECL_OVERRIDE;
4676 QPixmap mScaledBackgroundPixmap;
4677 bool mBackgroundScaled;
4678 Qt::AspectRatioMode mBackgroundScaledMode;
4680 Qt::Orientations mRangeDrag, mRangeZoom;
4683 double mRangeZoomFactorHorz, mRangeZoomFactorVert;
4687 QCP::AntialiasedElements mAADragBackup, mNotAADragBackup;
4692 virtual void applyDefaultAntialiasingHint(
QCPPainter *painter)
const Q_DECL_OVERRIDE;
4693 virtual void draw(
QCPPainter *painter) Q_DECL_OVERRIDE;
4694 virtual int calculateAutoMargin(
QCP::MarginSide side) Q_DECL_OVERRIDE;
4695 virtual void layoutChanged() Q_DECL_OVERRIDE;
4697 virtual
void mousePressEvent(
QMouseEvent *event, const
QVariant &details) Q_DECL_OVERRIDE;
4698 virtual
void mouseMoveEvent(
QMouseEvent *event, const
QPointF &startPos) Q_DECL_OVERRIDE;
4699 virtual
void mouseReleaseEvent(
QMouseEvent *event, const
QPointF &startPos) Q_DECL_OVERRIDE;
4700 virtual
void wheelEvent(
QWheelEvent *event) Q_DECL_OVERRIDE;
4704 void updateAxesOffset(
QCPAxis::AxisType type);
4723 Q_PROPERTY(QCPLegend* parentLegend READ parentLegend)
4729 Q_PROPERTY(
bool selected READ selected WRITE
setSelected NOTIFY selectableChanged)
4735 QCPLegend *parentLegend()
const {
return mParentLegend; }
4736 QFont font()
const {
return mFont; }
4737 QColor textColor()
const {
return mTextColor; }
4738 QFont selectedFont()
const {
return mSelectedFont; }
4739 QColor selectedTextColor()
const {
return mSelectedTextColor; }
4740 bool selectable()
const {
return mSelectable; }
4741 bool selected()
const {
return mSelected; }
4756 void selectableChanged(
bool selectable);
4760 QCPLegend *mParentLegend;
4763 QFont mSelectedFont;
4764 QColor mSelectedTextColor;
4765 bool mSelectable, mSelected;
4769 virtual
void applyDefaultAntialiasingHint(
QCPPainter *painter) const Q_DECL_OVERRIDE;
4770 virtual QRect clipRect() const Q_DECL_OVERRIDE;
4771 virtual
void draw(
QCPPainter *painter) Q_DECL_OVERRIDE = 0;
4773 virtual
void selectEvent(
QMouseEvent *event,
bool additive, const
QVariant &details,
bool *selectionStateChanged) Q_DECL_OVERRIDE;
4774 virtual
void deselectEvent(
bool *selectionStateChanged) Q_DECL_OVERRIDE;
4779 friend class QCPLegend;
4797 virtual void draw(
QCPPainter *painter) Q_DECL_OVERRIDE;
4801 QPen getIconBorderPen()
const;
4802 QColor getTextColor()
const;
4803 QFont getFont()
const;
4815 Q_PROPERTY(QSize iconSize READ iconSize WRITE
setIconSize)
4819 Q_PROPERTY(SelectableParts selectedParts READ selectedParts WRITE
setSelectedParts NOTIFY selectableChanged)
4836 Q_ENUMS(SelectablePart)
4837 Q_FLAGS(SelectableParts)
4838 Q_DECLARE_FLAGS(SelectableParts, SelectablePart)
4844 QPen borderPen()
const {
return mBorderPen; }
4845 QBrush brush()
const {
return mBrush; }
4846 QFont font()
const {
return mFont; }
4847 QColor textColor()
const {
return mTextColor; }
4848 QSize iconSize()
const {
return mIconSize; }
4849 int iconTextPadding()
const {
return mIconTextPadding; }
4850 QPen iconBorderPen()
const {
return mIconBorderPen; }
4851 SelectableParts selectableParts()
const {
return mSelectableParts; }
4852 SelectableParts selectedParts()
const;
4853 QPen selectedBorderPen()
const {
return mSelectedBorderPen; }
4854 QPen selectedIconBorderPen()
const {
return mSelectedIconBorderPen; }
4855 QBrush selectedBrush()
const {
return mSelectedBrush; }
4856 QFont selectedFont()
const {
return mSelectedFont; }
4857 QColor selectedTextColor()
const {
return mSelectedTextColor; }
4860 void setBorderPen(
const QPen &pen);
4861 void setBrush(
const QBrush &brush);
4862 void setFont(
const QFont &font);
4863 void setTextColor(
const QColor &color);
4864 void setIconSize(
const QSize &size);
4865 void setIconSize(
int width,
int height);
4866 void setIconTextPadding(
int padding);
4867 void setIconBorderPen(
const QPen &pen);
4868 Q_SLOT
void setSelectableParts(
const SelectableParts &selectableParts);
4869 Q_SLOT
void setSelectedParts(
const SelectableParts &selectedParts);
4870 void setSelectedBorderPen(
const QPen &pen);
4871 void setSelectedIconBorderPen(
const QPen &pen);
4872 void setSelectedBrush(
const QBrush &brush);
4873 void setSelectedFont(
const QFont &font);
4874 void setSelectedTextColor(
const QColor &color);
4877 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE;
4880 QCPAbstractLegendItem *item(
int index) const;
4881 QCPPlottableLegendItem *itemWithPlottable(const QCPAbstractPlottable *plottable) const;
4882 int itemCount() const;
4883 bool hasItem(QCPAbstractLegendItem *item) const;
4884 bool hasItemWithPlottable(const QCPAbstractPlottable *plottable) const;
4885 bool addItem(QCPAbstractLegendItem *item);
4886 bool removeItem(
int index);
4887 bool removeItem(QCPAbstractLegendItem *item);
4889 QList<QCPAbstractLegendItem*> selectedItems() const;
4893 void selectableChanged(
QCPLegend::SelectableParts parts);
4897 QPen mBorderPen, mIconBorderPen;
4902 int mIconTextPadding;
4903 SelectableParts mSelectedParts, mSelectableParts;
4904 QPen mSelectedBorderPen, mSelectedIconBorderPen;
4906 QFont mSelectedFont;
4907 QColor mSelectedTextColor;
4910 virtual
void parentPlotInitialized(QCustomPlot *parentPlot) Q_DECL_OVERRIDE;
4911 virtual
QCP::Interaction selectionCategory() const Q_DECL_OVERRIDE;
4912 virtual
void applyDefaultAntialiasingHint(
QCPPainter *painter) const Q_DECL_OVERRIDE;
4913 virtual
void draw(
QCPPainter *painter) Q_DECL_OVERRIDE;
4915 virtual
void selectEvent(
QMouseEvent *event,
bool additive, const
QVariant &details,
bool *selectionStateChanged) Q_DECL_OVERRIDE;
4916 virtual
void deselectEvent(
bool *selectionStateChanged) Q_DECL_OVERRIDE;
4919 QPen getBorderPen() const;
4925 friend class QCustomPlot;
4926 friend class QCPAbstractLegendItem;
4928Q_DECLARE_OPERATORS_FOR_FLAGS(
QCPLegend::SelectableParts)
4946 Q_PROPERTY(
bool selectable READ selectable WRITE
setSelectable NOTIFY selectableChanged)
4957 QString text()
const {
return mText; }
4958 int textFlags()
const {
return mTextFlags; }
4959 QFont font()
const {
return mFont; }
4960 QColor textColor()
const {
return mTextColor; }
4961 QFont selectedFont()
const {
return mSelectedFont; }
4962 QColor selectedTextColor()
const {
return mSelectedTextColor; }
4963 bool selectable()
const {
return mSelectable; }
4964 bool selected()
const {
return mSelected; }
4984 void selectableChanged(
bool selectable);
4994 QFont mSelectedFont;
4995 QColor mSelectedTextColor;
4996 QRect mTextBoundingRect;
4997 bool mSelectable, mSelected;
5000 virtual void applyDefaultAntialiasingHint(
QCPPainter *painter)
const Q_DECL_OVERRIDE;
5001 virtual void draw(
QCPPainter *painter) Q_DECL_OVERRIDE;
5005 virtual
void selectEvent(
QMouseEvent *event,
bool additive, const
QVariant &details,
bool *selectionStateChanged) Q_DECL_OVERRIDE;
5006 virtual
void deselectEvent(
bool *selectionStateChanged) Q_DECL_OVERRIDE;
5009 QFont mainFont() const;
5010 QColor mainTextColor() const;
5031 QCPColorScale *mParentColorScale;
5033 bool mGradientImageInvalidated;
5035 using QCPAxisRect::calculateAutoMargin;
5041 virtual void draw(
QCPPainter *painter) Q_DECL_OVERRIDE;
5042 void updateGradientImage();
5043 Q_SLOT
void axisSelectionChanged(QCPAxis::SelectableParts selectedParts);
5044 Q_SLOT
void axisSelectableChanged(QCPAxis::SelectableParts selectableParts);
5045 friend class QCPColorScale;
5058 Q_PROPERTY(
int barWidth READ barWidth WRITE
setBarWidth)
5059 Q_PROPERTY(
bool rangeDrag READ rangeDrag WRITE
setRangeDrag)
5060 Q_PROPERTY(
bool rangeZoom READ rangeZoom WRITE
setRangeZoom)
5069 QCPRange dataRange()
const {
return mDataRange; }
5071 QCPColorGradient gradient()
const {
return mGradient; }
5072 QString label()
const;
5073 int barWidth ()
const {
return mBarWidth; }
5074 bool rangeDrag()
const;
5075 bool rangeZoom()
const;
5079 Q_SLOT
void setDataRange(
const QCPRange &dataRange);
5081 Q_SLOT
void setGradient(
const QCPColorGradient &gradient);
5082 void setLabel(
const QString &str);
5083 void setBarWidth(
int width);
5084 void setRangeDrag(
bool enabled);
5085 void setRangeZoom(
bool enabled);
5088 QList<QCPColorMap*> colorMaps()
const;
5089 void rescaleDataRange(
bool onlyVisibleMaps);
5092 virtual void update(UpdatePhase phase) Q_DECL_OVERRIDE;
5108 QPointer<QCPColorScaleAxisRectPrivate> mAxisRect;
5109 QPointer<QCPAxis> mColorAxis;
5112 virtual void applyDefaultAntialiasingHint(
QCPPainter *painter)
const Q_DECL_OVERRIDE;
5122 friend class QCPColorScaleAxisRectPrivate;
5149Q_DECLARE_TYPEINFO(QCPGraphData, Q_PRIMITIVE_TYPE);
5161typedef QCPDataContainer<QCPGraphData> QCPGraphDataContainer;
5169 Q_PROPERTY(
int scatterSkip READ scatterSkip WRITE
setScatterSkip)
5193 QSharedPointer<QCPGraphDataContainer>
data()
const {
return mDataContainer; }
5194 LineStyle lineStyle()
const {
return mLineStyle; }
5195 QCPScatterStyle scatterStyle()
const {
return mScatterStyle; }
5196 int scatterSkip()
const {
return mScatterSkip; }
5197 QCPGraph *channelFillGraph()
const {
return mChannelFillGraph.data(); }
5198 bool adaptiveSampling()
const {
return mAdaptiveSampling; }
5201 void setData(QSharedPointer<QCPGraphDataContainer> data);
5202 void setData(
const QVector<double> &keys,
const QVector<double> &values,
bool alreadySorted=
false);
5203 void setLineStyle(LineStyle ls);
5204 void setScatterStyle(
const QCPScatterStyle &style);
5205 void setScatterSkip(
int skip);
5206 void setChannelFillGraph(QCPGraph *targetGraph);
5207 void setAdaptiveSampling(
bool enabled);
5210 void addData(
const QVector<double> &keys,
const QVector<double> &values,
bool alreadySorted=
false);
5211 void addData(
double key,
double value);
5214 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE;
5215 virtual QCPRange getKeyRange(
bool &foundRange, QCP::SignDomain inSignDomain=QCP::sdBoth) const Q_DECL_OVERRIDE;
5216 virtual QCPRange getValueRange(
bool &foundRange, QCP::SignDomain inSignDomain=QCP::sdBoth, const QCPRange &inKeyRange=QCPRange()) const Q_DECL_OVERRIDE;
5220 LineStyle mLineStyle;
5221 QCPScatterStyle mScatterStyle;
5223 QPointer<QCPGraph> mChannelFillGraph;
5224 bool mAdaptiveSampling;
5227 virtual
void draw(QCPPainter *painter) Q_DECL_OVERRIDE;
5228 virtual
void drawLegendIcon(QCPPainter *painter, const QRectF &rect) const Q_DECL_OVERRIDE;
5231 virtual
void drawFill(QCPPainter *painter, QVector<QPointF> *lines) const;
5232 virtual
void drawScatterPlot(QCPPainter *painter, const QVector<QPointF> &scatters, const QCPScatterStyle &style) const;
5233 virtual
void drawLinePlot(QCPPainter *painter, const QVector<QPointF> &lines) const;
5234 virtual
void drawImpulsePlot(QCPPainter *painter, const QVector<QPointF> &lines) const;
5236 virtual
void getOptimizedLineData(QVector<QCPGraphData> *lineData, const QCPGraphDataContainer::const_iterator &begin, const QCPGraphDataContainer::const_iterator &end) const;
5237 virtual
void getOptimizedScatterData(QVector<QCPGraphData> *scatterData, QCPGraphDataContainer::const_iterator begin, QCPGraphDataContainer::const_iterator end) const;
5240 void getVisibleDataBounds(QCPGraphDataContainer::const_iterator &begin, QCPGraphDataContainer::const_iterator &end, const QCPDataRange &rangeRestriction) const;
5241 void getLines(QVector<QPointF> *lines, const QCPDataRange &dataRange) const;
5242 void getScatters(QVector<QPointF> *scatters, const QCPDataRange &dataRange) const;
5243 QVector<QPointF> dataToLines(const QVector<QCPGraphData> &data) const;
5244 QVector<QPointF> dataToStepLeftLines(const QVector<QCPGraphData> &data) const;
5245 QVector<QPointF> dataToStepRightLines(const QVector<QCPGraphData> &data) const;
5246 QVector<QPointF> dataToStepCenterLines(const QVector<QCPGraphData> &data) const;
5247 QVector<QPointF> dataToImpulseLines(const QVector<QCPGraphData> &data) const;
5248 QVector<QCPDataRange> getNonNanSegments(const QVector<QPointF> *lineData, Qt::Orientation keyOrientation) const;
5249 QVector<QPair<QCPDataRange, QCPDataRange> > getOverlappingSegments(QVector<QCPDataRange> thisSegments, const QVector<QPointF> *thisData, QVector<QCPDataRange> otherSegments, const QVector<QPointF> *otherData) const;
5250 bool segmentsIntersect(
double aLower,
double aUpper,
double bLower,
double bUpper,
int &bPrecedence) const;
5251 QPointF getFillBasePoint(QPointF matchingDataPoint) const;
5252 const QPolygonF getFillPolygon(const QVector<QPointF> *lineData, QCPDataRange segment) const;
5253 const QPolygonF getChannelFillPolygon(const QVector<QPointF> *lineData, QCPDataRange thisSegment, const QVector<QPointF> *otherData, QCPDataRange otherSegment) const;
5254 int findIndexBelowX(const QVector<QPointF> *data,
double x) const;
5255 int findIndexAboveX(const QVector<QPointF> *data,
double x) const;
5256 int findIndexBelowY(const QVector<QPointF> *data,
double y) const;
5257 int findIndexAboveY(const QVector<QPointF> *data,
double y) const;
5258 double pointDistance(const QPointF &pixelPoint, QCPGraphDataContainer::const_iterator &closestData) const;
5260 friend class QCustomPlot;
5261 friend class QCPLegend;
5263Q_DECLARE_METATYPE(QCPGraph::LineStyle)
5286 double t, key, value;
5288Q_DECLARE_TYPEINFO(QCPCurveData, Q_PRIMITIVE_TYPE);
5301typedef QCPDataContainer<QCPCurveData> QCPCurveDataContainer;
5308 Q_PROPERTY(
int scatterSkip READ scatterSkip WRITE
setScatterSkip)
5326 QSharedPointer<QCPCurveDataContainer>
data()
const {
return mDataContainer; }
5328 int scatterSkip()
const {
return mScatterSkip; }
5329 LineStyle lineStyle()
const {
return mLineStyle; }
5332 void setData(QSharedPointer<QCPCurveDataContainer> data);
5333 void setData(
const QVector<double> &t,
const QVector<double> &keys,
const QVector<double> &values,
bool alreadySorted=
false);
5334 void setData(
const QVector<double> &keys,
const QVector<double> &values);
5335 void setScatterStyle(
const QCPScatterStyle &style);
5336 void setScatterSkip(
int skip);
5337 void setLineStyle(LineStyle style);
5340 void addData(
const QVector<double> &t,
const QVector<double> &keys,
const QVector<double> &values,
bool alreadySorted=
false);
5341 void addData(
const QVector<double> &keys,
const QVector<double> &values);
5342 void addData(
double t,
double key,
double value);
5343 void addData(
double key,
double value);
5346 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE;
5347 virtual QCPRange getKeyRange(
bool &foundRange, QCP::SignDomain inSignDomain=QCP::sdBoth) const Q_DECL_OVERRIDE;
5348 virtual QCPRange getValueRange(
bool &foundRange, QCP::SignDomain inSignDomain=QCP::sdBoth, const QCPRange &inKeyRange=QCPRange()) const Q_DECL_OVERRIDE;
5352 QCPScatterStyle mScatterStyle;
5354 LineStyle mLineStyle;
5357 virtual
void draw(QCPPainter *painter) Q_DECL_OVERRIDE;
5358 virtual
void drawLegendIcon(QCPPainter *painter, const QRectF &rect) const Q_DECL_OVERRIDE;
5361 virtual
void drawCurveLine(QCPPainter *painter, const QVector<QPointF> &lines) const;
5362 virtual
void drawScatterPlot(QCPPainter *painter, const QVector<QPointF> &points, const QCPScatterStyle &style) const;
5365 void getCurveLines(QVector<QPointF> *lines, const QCPDataRange &dataRange,
double penWidth) const;
5366 void getScatters(QVector<QPointF> *scatters, const QCPDataRange &dataRange,
double scatterWidth) const;
5367 int getRegion(
double key,
double value,
double keyMin,
double valueMax,
double keyMax,
double valueMin) const;
5368 QPointF getOptimizedPoint(
int prevRegion,
double prevKey,
double prevValue,
double key,
double value,
double keyMin,
double valueMax,
double keyMax,
double valueMin) const;
5369 QVector<QPointF> getOptimizedCornerPoints(
int prevRegion,
int currentRegion,
double prevKey,
double prevValue,
double key,
double value,
double keyMin,
double valueMax,
double keyMax,
double valueMin) const;
5370 bool mayTraverse(
int prevRegion,
int currentRegion) const;
5371 bool getTraverse(
double prevKey,
double prevValue,
double key,
double value,
double keyMin,
double valueMax,
double keyMax,
double valueMin, QPointF &crossA, QPointF &crossB) const;
5372 void getTraverseCornerPoints(
int prevRegion,
int currentRegion,
double keyMin,
double valueMax,
double keyMax,
double valueMin, QVector<QPointF> &beforeTraverse, QVector<QPointF> &afterTraverse) const;
5373 double pointDistance(const QPointF &pixelPoint, QCPCurveDataContainer::const_iterator &closestData) const;
5375 friend class QCustomPlot;
5376 friend class QCPLegend;
5378Q_DECLARE_METATYPE(QCPCurve::LineStyle)
5391 Q_PROPERTY(
double spacing READ spacing WRITE
setSpacing)
5404 Q_ENUMS(SpacingType)
5410 SpacingType spacingType()
const {
return mSpacingType; }
5411 double spacing()
const {
return mSpacing; }
5414 void setSpacingType(SpacingType spacingType);
5415 void setSpacing(
double spacing);
5419 QCPBars* bars(
int index)
const;
5420 int size()
const {
return mBars.size(); }
5425 void insert(
int i,
QCPBars *bars);
5431 SpacingType mSpacingType;
5436 void registerBars(
QCPBars *bars);
5437 void unregisterBars(
QCPBars *bars);
5440 double keyPixelOffset(
const QCPBars *bars,
double keyCoord);
5441 double getPixelSpacing(
const QCPBars *bars,
double keyCoord);
5468Q_DECLARE_TYPEINFO(QCPBarsData, Q_PRIMITIVE_TYPE);
5480typedef QCPDataContainer<QCPBarsData> QCPBarsDataContainer;
5486 Q_PROPERTY(
double width READ width WRITE
setWidth)
5488 Q_PROPERTY(QCPBarsGroup* barsGroup READ barsGroup WRITE
setBarsGroup)
5489 Q_PROPERTY(
double baseValue READ baseValue WRITE
setBaseValue)
5490 Q_PROPERTY(
double stackingGap READ stackingGap WRITE
setStackingGap)
5511 double width()
const {
return mWidth; }
5512 WidthType widthType()
const {
return mWidthType; }
5513 QCPBarsGroup *barsGroup()
const {
return mBarsGroup; }
5514 double baseValue()
const {
return mBaseValue; }
5515 double stackingGap()
const {
return mStackingGap; }
5518 QSharedPointer<QCPBarsDataContainer>
data()
const {
return mDataContainer; }
5521 void setData(QSharedPointer<QCPBarsDataContainer> data);
5523 void setWidth(
double width);
5524 void setWidthType(WidthType widthType);
5526 void setBaseValue(
double baseValue);
5527 void setStackingGap(
double pixels);
5531 void addData(
double key,
double value);
5532 void moveBelow(
QCPBars *bars);
5533 void moveAbove(
QCPBars *bars);
5537 virtual double selectTest(
const QPointF &pos,
bool onlySelectable,
QVariant *details=0) const Q_DECL_OVERRIDE;
5538 virtual
QCPRange getKeyRange(
bool &foundRange,
QCP::SignDomain inSignDomain=
QCP::sdBoth) const Q_DECL_OVERRIDE;
5539 virtual
QCPRange getValueRange(
bool &foundRange,
QCP::SignDomain inSignDomain=
QCP::sdBoth, const
QCPRange &inKeyRange=
QCPRange()) const Q_DECL_OVERRIDE;
5540 virtual
QPointF dataPixelPosition(
int index) const Q_DECL_OVERRIDE;
5545 WidthType mWidthType;
5548 double mStackingGap;
5549 QPointer<
QCPBars> mBarBelow, mBarAbove;
5552 virtual
void draw(
QCPPainter *painter) Q_DECL_OVERRIDE;
5553 virtual
void drawLegendIcon(
QCPPainter *painter, const
QRectF &rect) const Q_DECL_OVERRIDE;
5556 void getVisibleDataBounds(QCPBarsDataContainer::const_iterator &begin, QCPBarsDataContainer::const_iterator &end) const;
5557 QRectF getBarRect(
double key,
double value) const;
5558 void getPixelWidth(
double key,
double &lower,
double &upper) const;
5559 double getStackedBaseValue(
double key,
bool positive) const;
5566Q_DECLARE_METATYPE(
QCPBars::WidthType)
5595 double key, minimum, lowerQuartile, median, upperQuartile, maximum;
5598Q_DECLARE_TYPEINFO(QCPStatisticalBoxData, Q_MOVABLE_TYPE);
5611typedef QCPDataContainer<QCPStatisticalBoxData> QCPStatisticalBoxDataContainer;
5617 Q_PROPERTY(
double width READ width WRITE
setWidth)
5618 Q_PROPERTY(
double whiskerWidth READ whiskerWidth WRITE
setWhiskerWidth)
5629 QSharedPointer<QCPStatisticalBoxDataContainer>
data()
const {
return mDataContainer; }
5630 double width()
const {
return mWidth; }
5631 double whiskerWidth()
const {
return mWhiskerWidth; }
5632 QPen whiskerPen()
const {
return mWhiskerPen; }
5633 QPen whiskerBarPen()
const {
return mWhiskerBarPen; }
5634 bool whiskerAntialiased()
const {
return mWhiskerAntialiased; }
5635 QPen medianPen()
const {
return mMedianPen; }
5636 QCPScatterStyle outlierStyle()
const {
return mOutlierStyle; }
5639 void setData(QSharedPointer<QCPStatisticalBoxDataContainer> data);
5640 void setData(
const QVector<double> &keys,
const QVector<double> &minimum,
const QVector<double> &lowerQuartile,
const QVector<double> &median,
const QVector<double> &upperQuartile,
const QVector<double> &maximum,
bool alreadySorted=
false);
5641 void setWidth(
double width);
5642 void setWhiskerWidth(
double width);
5643 void setWhiskerPen(
const QPen &pen);
5644 void setWhiskerBarPen(
const QPen &pen);
5645 void setWhiskerAntialiased(
bool enabled);
5646 void setMedianPen(
const QPen &pen);
5647 void setOutlierStyle(
const QCPScatterStyle &style);
5650 void addData(
const QVector<double> &keys,
const QVector<double> &minimum,
const QVector<double> &lowerQuartile,
const QVector<double> &median,
const QVector<double> &upperQuartile,
const QVector<double> &maximum,
bool alreadySorted=
false);
5651 void addData(
double key,
double minimum,
double lowerQuartile,
double median,
double upperQuartile,
double maximum,
const QVector<double> &outliers=QVector<double>());
5654 virtual QCPDataSelection selectTestRect(
const QRectF &rect,
bool onlySelectable)
const Q_DECL_OVERRIDE;
5655 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE;
5656 virtual QCPRange getKeyRange(
bool &foundRange, QCP::SignDomain inSignDomain=QCP::sdBoth) const Q_DECL_OVERRIDE;
5657 virtual QCPRange getValueRange(
bool &foundRange, QCP::SignDomain inSignDomain=QCP::sdBoth, const QCPRange &inKeyRange=QCPRange()) const Q_DECL_OVERRIDE;
5662 double mWhiskerWidth;
5663 QPen mWhiskerPen, mWhiskerBarPen;
5664 bool mWhiskerAntialiased;
5666 QCPScatterStyle mOutlierStyle;
5669 virtual
void draw(QCPPainter *painter) Q_DECL_OVERRIDE;
5670 virtual
void drawLegendIcon(QCPPainter *painter, const QRectF &rect) const Q_DECL_OVERRIDE;
5673 virtual
void drawStatisticalBox(QCPPainter *painter, QCPStatisticalBoxDataContainer::const_iterator it, const QCPScatterStyle &outlierStyle) const;
5676 void getVisibleDataBounds(QCPStatisticalBoxDataContainer::const_iterator &begin, QCPStatisticalBoxDataContainer::const_iterator &end) const;
5677 QRectF getQuartileBox(QCPStatisticalBoxDataContainer::const_iterator it) const;
5678 QVector<QLineF> getWhiskerBackboneLines(QCPStatisticalBoxDataContainer::const_iterator it) const;
5679 QVector<QLineF> getWhiskerBarLines(QCPStatisticalBoxDataContainer::const_iterator it) const;
5681 friend class QCustomPlot;
5682 friend class QCPLegend;
5700 int keySize()
const {
return mKeySize; }
5701 int valueSize()
const {
return mValueSize; }
5702 QCPRange keyRange()
const {
return mKeyRange; }
5703 QCPRange valueRange()
const {
return mValueRange; }
5704 QCPRange dataBounds()
const {
return mDataBounds; }
5705 double data(
double key,
double value);
5706 double cell(
int keyIndex,
int valueIndex);
5707 unsigned char alpha(
int keyIndex,
int valueIndex);
5710 void setSize(
int keySize,
int valueSize);
5716 void setData(
double key,
double value,
double z);
5717 void setCell(
int keyIndex,
int valueIndex,
double z);
5718 void setAlpha(
int keyIndex,
int valueIndex,
unsigned char alpha);
5724 void fill(
double z);
5727 void coordToCell(
double key,
double value,
int *keyIndex,
int *valueIndex)
const;
5728 void cellToCoord(
int keyIndex,
int valueIndex,
double *key,
double *value)
const;
5732 int mKeySize, mValueSize;
5738 unsigned char *mAlpha;
5742 bool createAlpha(
bool initializeOpaque=
true);
5755 Q_PROPERTY(
bool interpolate READ interpolate WRITE
setInterpolate)
5760 explicit QCPColorMap(QCPAxis *keyAxis, QCPAxis *valueAxis);
5765 QCPRange dataRange()
const {
return mDataRange; }
5767 bool interpolate()
const {
return mInterpolate; }
5768 bool tightBoundary()
const {
return mTightBoundary; }
5769 QCPColorGradient gradient()
const {
return mGradient; }
5770 QCPColorScale *colorScale()
const {
return mColorScale.data(); }
5773 void setData(QCPColorMapData *data,
bool copy=
false);
5774 Q_SLOT
void setDataRange(
const QCPRange &dataRange);
5776 Q_SLOT
void setGradient(
const QCPColorGradient &gradient);
5777 void setInterpolate(
bool enabled);
5778 void setTightBoundary(
bool enabled);
5779 void setColorScale(QCPColorScale *colorScale);
5782 void rescaleDataRange(
bool recalculateDataBounds=
false);
5783 Q_SLOT
void updateLegendIcon(Qt::TransformationMode transformMode=Qt::SmoothTransformation,
const QSize &thumbSize=QSize(32, 18));
5786 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE;
5787 virtual QCPRange getKeyRange(
bool &foundRange, QCP::SignDomain inSignDomain=QCP::sdBoth) const Q_DECL_OVERRIDE;
5788 virtual QCPRange getValueRange(
bool &foundRange, QCP::SignDomain inSignDomain=QCP::sdBoth, const QCPRange &inKeyRange=QCPRange()) const Q_DECL_OVERRIDE;
5798 QCPAxis::ScaleType mDataScaleType;
5802 bool mTightBoundary;
5806 QImage mMapImage, mUndersampledMapImage;
5808 bool mMapImageInvalidated;
5811 virtual
void updateMapImage();
5814 virtual
void draw(
QCPPainter *painter) Q_DECL_OVERRIDE;
5815 virtual
void drawLegendIcon(
QCPPainter *painter, const
QRectF &rect) const Q_DECL_OVERRIDE;
5817 friend class QCustomPlot;
5818 friend class QCPLegend;
5831 QCPFinancialData(
double key,
double open,
double high,
double low,
double close);
5842 double key, open, high, low, close;
5844Q_DECLARE_TYPEINFO(QCPFinancialData, Q_PRIMITIVE_TYPE);
5856typedef QCPDataContainer<QCPFinancialData> QCPFinancialDataContainer;
5863 Q_PROPERTY(
double width READ width WRITE
setWidth)
5865 Q_PROPERTY(
bool twoColored READ twoColored WRITE
setTwoColored)
5898 QSharedPointer<QCPFinancialDataContainer>
data()
const {
return mDataContainer; }
5899 ChartStyle chartStyle()
const {
return mChartStyle; }
5900 double width()
const {
return mWidth; }
5901 WidthType widthType()
const {
return mWidthType; }
5902 bool twoColored()
const {
return mTwoColored; }
5903 QBrush brushPositive()
const {
return mBrushPositive; }
5904 QBrush brushNegative()
const {
return mBrushNegative; }
5905 QPen penPositive()
const {
return mPenPositive; }
5906 QPen penNegative()
const {
return mPenNegative; }
5909 void setData(QSharedPointer<QCPFinancialDataContainer> data);
5910 void setData(
const QVector<double> &keys,
const QVector<double> &open,
const QVector<double> &high,
const QVector<double> &low,
const QVector<double> &close,
bool alreadySorted=
false);
5911 void setChartStyle(ChartStyle style);
5912 void setWidth(
double width);
5913 void setWidthType(WidthType widthType);
5914 void setTwoColored(
bool twoColored);
5915 void setBrushPositive(
const QBrush &brush);
5916 void setBrushNegative(
const QBrush &brush);
5917 void setPenPositive(
const QPen &pen);
5918 void setPenNegative(
const QPen &pen);
5921 void addData(
const QVector<double> &keys,
const QVector<double> &open,
const QVector<double> &high,
const QVector<double> &low,
const QVector<double> &close,
bool alreadySorted=
false);
5922 void addData(
double key,
double open,
double high,
double low,
double close);
5925 virtual QCPDataSelection selectTestRect(
const QRectF &rect,
bool onlySelectable)
const Q_DECL_OVERRIDE;
5926 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE;
5927 virtual QCPRange getKeyRange(
bool &foundRange, QCP::SignDomain inSignDomain=QCP::sdBoth) const Q_DECL_OVERRIDE;
5928 virtual QCPRange getValueRange(
bool &foundRange, QCP::SignDomain inSignDomain=QCP::sdBoth, const QCPRange &inKeyRange=QCPRange()) const Q_DECL_OVERRIDE;
5931 static QCPFinancialDataContainer timeSeriesToOhlc(const QVector<
double> &time, const QVector<
double> &value,
double timeBinSize,
double timeBinOffset = 0);
5935 ChartStyle mChartStyle;
5937 WidthType mWidthType;
5939 QBrush mBrushPositive, mBrushNegative;
5940 QPen mPenPositive, mPenNegative;
5943 virtual
void draw(QCPPainter *painter) Q_DECL_OVERRIDE;
5944 virtual
void drawLegendIcon(QCPPainter *painter, const QRectF &rect) const Q_DECL_OVERRIDE;
5947 void drawOhlcPlot(QCPPainter *painter, const QCPFinancialDataContainer::const_iterator &begin, const QCPFinancialDataContainer::const_iterator &end,
bool isSelected);
5948 void drawCandlestickPlot(QCPPainter *painter, const QCPFinancialDataContainer::const_iterator &begin, const QCPFinancialDataContainer::const_iterator &end,
bool isSelected);
5949 double getPixelWidth(
double key,
double keyPixel) const;
5950 double ohlcSelectTest(const QPointF &pos, const QCPFinancialDataContainer::const_iterator &begin, const QCPFinancialDataContainer::const_iterator &end, QCPFinancialDataContainer::const_iterator &closestDataPoint) const;
5951 double candlestickSelectTest(const QPointF &pos, const QCPFinancialDataContainer::const_iterator &begin, const QCPFinancialDataContainer::const_iterator &end, QCPFinancialDataContainer::const_iterator &closestDataPoint) const;
5952 void getVisibleDataBounds(QCPFinancialDataContainer::const_iterator &begin, QCPFinancialDataContainer::const_iterator &end) const;
5953 QRectF selectionHitBox(QCPFinancialDataContainer::const_iterator it) const;
5955 friend class QCustomPlot;
5956 friend class QCPLegend;
5958Q_DECLARE_METATYPE(QCPFinancial::ChartStyle)
5973 double errorMinus, errorPlus;
5999 Q_PROPERTY(QSharedPointer<QCPErrorBarsDataContainer>
data READ
data WRITE
setData)
6002 Q_PROPERTY(
double whiskerWidth READ whiskerWidth WRITE
setWhiskerWidth)
6003 Q_PROPERTY(
double symbolGap READ symbolGap WRITE
setSymbolGap)
6021 QSharedPointer<QCPErrorBarsDataContainer>
data()
const {
return mDataContainer; }
6023 ErrorType errorType()
const {
return mErrorType; }
6024 double whiskerWidth()
const {
return mWhiskerWidth; }
6025 double symbolGap()
const {
return mSymbolGap; }
6028 void setData(QSharedPointer<QCPErrorBarsDataContainer> data);
6029 void setData(
const QVector<double> &error);
6030 void setData(
const QVector<double> &errorMinus,
const QVector<double> &errorPlus);
6031 void setDataPlottable(QCPAbstractPlottable* plottable);
6032 void setErrorType(ErrorType type);
6033 void setWhiskerWidth(
double pixels);
6034 void setSymbolGap(
double pixels);
6037 void addData(
const QVector<double> &error);
6038 void addData(
const QVector<double> &errorMinus,
const QVector<double> &errorPlus);
6039 void addData(
double error);
6040 void addData(
double errorMinus,
double errorPlus);
6043 virtual int dataCount() const Q_DECL_OVERRIDE;
6044 virtual
double dataMainKey(
int index) const Q_DECL_OVERRIDE;
6045 virtual
double dataSortKey(
int index) const Q_DECL_OVERRIDE;
6046 virtual
double dataMainValue(
int index) const Q_DECL_OVERRIDE;
6047 virtual QCPRange dataValueRange(
int index) const Q_DECL_OVERRIDE;
6048 virtual QPointF dataPixelPosition(
int index) const Q_DECL_OVERRIDE;
6049 virtual
bool sortKeyIsMainKey() const Q_DECL_OVERRIDE;
6050 virtual QCPDataSelection selectTestRect(const QRectF &rect,
bool onlySelectable) const Q_DECL_OVERRIDE;
6051 virtual
int findBegin(
double sortKey,
bool expandedRange=true) const Q_DECL_OVERRIDE;
6052 virtual
int findEnd(
double sortKey,
bool expandedRange=true) const Q_DECL_OVERRIDE;
6055 virtual
double selectTest(const QPointF &pos,
bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE;
6060 QSharedPointer<QCPErrorBarsDataContainer> mDataContainer;
6061 QPointer<QCPAbstractPlottable> mDataPlottable;
6062 ErrorType mErrorType;
6063 double mWhiskerWidth;
6067 virtual void draw(
QCPPainter *painter) Q_DECL_OVERRIDE;
6068 virtual void drawLegendIcon(
QCPPainter *painter,
const QRectF &rect)
const Q_DECL_OVERRIDE;
6073 void getErrorBarLines(QCPErrorBarsDataContainer::const_iterator it,
QVector<
QLineF> &backbones,
QVector<
QLineF> &whiskers) const;
6074 void getVisibleDataBounds(QCPErrorBarsDataContainer::const_iterator &begin, QCPErrorBarsDataContainer::const_iterator &end, const
QCPDataRange &rangeRestriction) const;
6075 double pointDistance(const
QPointF &pixelPoint, QCPErrorBarsDataContainer::const_iterator &closestData) const;
6078 bool errorBarVisible(
int index) const;
6079 bool rectIntersectsLine(const
QRectF &pixelRect, const
QLineF &line) const;
6103 QPen pen()
const {
return mPen; }
6104 QPen selectedPen()
const {
return mSelectedPen; }
6118 QPen mPen, mSelectedPen;
6121 virtual void draw(
QCPPainter *painter) Q_DECL_OVERRIDE;
6125 QPen mainPen()
const;
6148 QPen pen()
const {
return mPen; }
6149 QPen selectedPen()
const {
return mSelectedPen; }
6167 QPen mPen, mSelectedPen;
6171 virtual void draw(
QCPPainter *painter) Q_DECL_OVERRIDE;
6175 QPen mainPen()
const;
6198 QPen pen()
const {
return mPen; }
6199 QPen selectedPen()
const {
return mSelectedPen; }
6219 QPen mPen, mSelectedPen;
6223 virtual void draw(
QCPPainter *painter) Q_DECL_OVERRIDE;
6226 QPen mainPen()
const;
6249 QPen pen()
const {
return mPen; }
6250 QPen selectedPen()
const {
return mSelectedPen; }
6251 QBrush brush()
const {
return mBrush; }
6252 QBrush selectedBrush()
const {
return mSelectedBrush; }
6265 QCPItemAnchor *
const top;
6266 QCPItemAnchor *
const topRight;
6267 QCPItemAnchor *
const right;
6268 QCPItemAnchor *
const bottom;
6269 QCPItemAnchor *
const bottomLeft;
6270 QCPItemAnchor *
const left;
6273 enum AnchorIndex {aiTop, aiTopRight, aiRight, aiBottom, aiBottomLeft, aiLeft};
6276 QPen mPen, mSelectedPen;
6277 QBrush mBrush, mSelectedBrush;
6280 virtual void draw(
QCPPainter *painter) Q_DECL_OVERRIDE;
6281 virtual QPointF anchorPixelPosition(
int anchorId)
const Q_DECL_OVERRIDE;
6284 QPen mainPen()
const;
6285 QBrush mainBrush()
const;
6308 Q_PROPERTY(Qt::Alignment textAlignment READ textAlignment WRITE
setTextAlignment)
6309 Q_PROPERTY(
double rotation READ rotation WRITE
setRotation)
6310 Q_PROPERTY(QMargins padding READ padding WRITE
setPadding)
6317 QColor color()
const {
return mColor; }
6318 QColor selectedColor()
const {
return mSelectedColor; }
6319 QPen pen()
const {
return mPen; }
6320 QPen selectedPen()
const {
return mSelectedPen; }
6321 QBrush brush()
const {
return mBrush; }
6322 QBrush selectedBrush()
const {
return mSelectedBrush; }
6323 QFont font()
const {
return mFont; }
6324 QFont selectedFont()
const {
return mSelectedFont; }
6325 QString text()
const {
return mText; }
6326 Qt::Alignment positionAlignment()
const {
return mPositionAlignment; }
6327 Qt::Alignment textAlignment()
const {
return mTextAlignment; }
6328 double rotation()
const {
return mRotation; }
6329 QMargins padding()
const {
return mPadding; }
6350 QCPItemAnchor *
const topLeft;
6351 QCPItemAnchor *
const top;
6352 QCPItemAnchor *
const topRight;
6353 QCPItemAnchor *
const right;
6354 QCPItemAnchor *
const bottomRight;
6355 QCPItemAnchor *
const bottom;
6356 QCPItemAnchor *
const bottomLeft;
6357 QCPItemAnchor *
const left;
6360 enum AnchorIndex {aiTopLeft, aiTop, aiTopRight, aiRight, aiBottomRight, aiBottom, aiBottomLeft, aiLeft};
6363 QColor mColor, mSelectedColor;
6364 QPen mPen, mSelectedPen;
6365 QBrush mBrush, mSelectedBrush;
6366 QFont mFont, mSelectedFont;
6368 Qt::Alignment mPositionAlignment;
6369 Qt::Alignment mTextAlignment;
6374 virtual void draw(
QCPPainter *painter) Q_DECL_OVERRIDE;
6375 virtual QPointF anchorPixelPosition(
int anchorId)
const Q_DECL_OVERRIDE;
6378 QPointF getTextDrawPoint(
const QPointF &pos,
const QRectF &rect, Qt::Alignment positionAlignment)
const;
6379 QFont mainFont()
const;
6380 QColor mainColor()
const;
6381 QPen mainPen()
const;
6382 QBrush mainBrush()
const;
6405 QPen pen()
const {
return mPen; }
6406 QPen selectedPen()
const {
return mSelectedPen; }
6407 QBrush brush()
const {
return mBrush; }
6408 QBrush selectedBrush()
const {
return mSelectedBrush; }
6421 QCPItemAnchor *
const topLeftRim;
6422 QCPItemAnchor *
const top;
6423 QCPItemAnchor *
const topRightRim;
6424 QCPItemAnchor *
const right;
6425 QCPItemAnchor *
const bottomRightRim;
6426 QCPItemAnchor *
const bottom;
6427 QCPItemAnchor *
const bottomLeftRim;
6428 QCPItemAnchor *
const left;
6429 QCPItemAnchor *
const center;
6432 enum AnchorIndex {aiTopLeftRim, aiTop, aiTopRightRim, aiRight, aiBottomRightRim, aiBottom, aiBottomLeftRim, aiLeft, aiCenter};
6435 QPen mPen, mSelectedPen;
6436 QBrush mBrush, mSelectedBrush;
6439 virtual void draw(
QCPPainter *painter) Q_DECL_OVERRIDE;
6440 virtual QPointF anchorPixelPosition(
int anchorId)
const Q_DECL_OVERRIDE;
6443 QPen mainPen()
const;
6444 QBrush mainBrush()
const;
6458 Q_PROPERTY(
bool scaled READ scaled WRITE
setScaled)
6459 Q_PROPERTY(Qt::AspectRatioMode aspectRatioMode READ aspectRatioMode)
6460 Q_PROPERTY(Qt::TransformationMode transformationMode READ transformationMode)
6469 QPixmap pixmap()
const {
return mPixmap; }
6470 bool scaled()
const {
return mScaled; }
6471 Qt::AspectRatioMode aspectRatioMode()
const {
return mAspectRatioMode; }
6472 Qt::TransformationMode transformationMode()
const {
return mTransformationMode; }
6473 QPen pen()
const {
return mPen; }
6474 QPen selectedPen()
const {
return mSelectedPen; }
6478 void setScaled(
bool scaled, Qt::AspectRatioMode aspectRatioMode=Qt::KeepAspectRatio, Qt::TransformationMode transformationMode=Qt::SmoothTransformation);
6487 QCPItemAnchor *
const top;
6488 QCPItemAnchor *
const topRight;
6489 QCPItemAnchor *
const right;
6490 QCPItemAnchor *
const bottom;
6491 QCPItemAnchor *
const bottomLeft;
6492 QCPItemAnchor *
const left;
6495 enum AnchorIndex {aiTop, aiTopRight, aiRight, aiBottom, aiBottomLeft, aiLeft};
6501 bool mScaledPixmapInvalidated;
6502 Qt::AspectRatioMode mAspectRatioMode;
6503 Qt::TransformationMode mTransformationMode;
6504 QPen mPen, mSelectedPen;
6507 virtual void draw(
QCPPainter *painter) Q_DECL_OVERRIDE;
6508 virtual QPointF anchorPixelPosition(
int anchorId)
const Q_DECL_OVERRIDE;
6511 void updateScaledPixmap(QRect finalRect=QRect(),
bool flipHorz=
false,
bool flipVert=
false);
6512 QRect getFinalRect(
bool *flippedHorz=0,
bool *flippedVert=0)
const;
6513 QPen mainPen()
const;
6530 Q_PROPERTY(
double size READ size WRITE
setSize)
6533 Q_PROPERTY(
double graphKey READ graphKey WRITE
setGraphKey)
6548 Q_ENUMS(TracerStyle)
6554 QPen pen()
const {
return mPen; }
6555 QPen selectedPen()
const {
return mSelectedPen; }
6556 QBrush brush()
const {
return mBrush; }
6557 QBrush selectedBrush()
const {
return mSelectedBrush; }
6558 double size()
const {
return mSize; }
6559 TracerStyle style()
const {
return mStyle; }
6560 QCPGraph *graph()
const {
return mGraph; }
6561 double graphKey()
const {
return mGraphKey; }
6562 bool interpolating()
const {
return mInterpolating; }
6565 void setPen(
const QPen &pen);
6566 void setSelectedPen(
const QPen &pen);
6567 void setBrush(
const QBrush &brush);
6568 void setSelectedBrush(
const QBrush &brush);
6569 void setSize(
double size);
6570 void setStyle(TracerStyle style);
6571 void setGraph(QCPGraph *graph);
6572 void setGraphKey(
double key);
6573 void setInterpolating(
bool enabled);
6576 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE;
6579 void updatePosition();
6581 QCPItemPosition * const position;
6585 QPen mPen, mSelectedPen;
6586 QBrush mBrush, mSelectedBrush;
6591 bool mInterpolating;
6594 virtual
void draw(QCPPainter *painter) Q_DECL_OVERRIDE;
6597 QPen mainPen() const;
6598 QBrush mainBrush() const;
6600Q_DECLARE_METATYPE(QCPItemTracer::TracerStyle)
6614 Q_PROPERTY(
double length READ length WRITE
setLength)
6629 Q_ENUMS(BracketStyle)
6635 QPen pen()
const {
return mPen; }
6636 QPen selectedPen()
const {
return mSelectedPen; }
6637 double length()
const {
return mLength; }
6638 BracketStyle style()
const {
return mStyle; }
6641 void setPen(
const QPen &pen);
6642 void setSelectedPen(
const QPen &pen);
6643 void setLength(
double length);
6644 void setStyle(BracketStyle style);
6647 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE;
6649 QCPItemPosition * const left;
6650 QCPItemPosition * const right;
6651 QCPItemAnchor * const center;
6655 enum AnchorIndex {aiCenter};
6656 QPen mPen, mSelectedPen;
6658 BracketStyle mStyle;
6661 virtual void draw(QCPPainter *painter) Q_DECL_OVERRIDE;
6662 virtual QPointF anchorPixelPosition(
int anchorId)
const Q_DECL_OVERRIDE;
6665 QPen mainPen()
const;
The abstract base class for all items in a plot.
Definition qcustomplot.h:3514
Q_SLOT void setSelected(bool selected)
Definition qcustomplot.cpp:12300
void setClipToAxisRect(bool clip)
Definition qcustomplot.cpp:12248
QList< QCPItemPosition * > positions() const
Definition qcustomplot.h:3542
void setClipAxisRect(QCPAxisRect *rect)
Definition qcustomplot.cpp:12261
QList< QCPItemAnchor * > anchors() const
Definition qcustomplot.h:3543
Q_SLOT void setSelectable(bool selectable)
Definition qcustomplot.cpp:12277
QCPAbstractItem(QCustomPlot *parentPlot)
Definition qcustomplot.cpp:12214
void selectionChanged(bool selected)
virtual double selectTest(const QPointF &pos, bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE=0
The abstract base class for all entries in a QCPLegend.
Definition qcustomplot.h:4720
void setFont(const QFont &font)
Definition qcustomplot.cpp:18025
void setSelectedTextColor(const QColor &color)
Definition qcustomplot.cpp:18057
void setTextColor(const QColor &color)
Definition qcustomplot.cpp:18035
Q_SLOT void setSelected(bool selected)
Definition qcustomplot.cpp:18084
void selectionChanged(bool selected)
virtual double selectTest(const QPointF &pos, bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE
Definition qcustomplot.cpp:18094
void setSelectedFont(const QFont &font)
Definition qcustomplot.cpp:18046
Q_SLOT void setSelectable(bool selectable)
Definition qcustomplot.cpp:18067
QCPAbstractLegendItem(QCPLegend *parent)
Definition qcustomplot.cpp:18006
The abstract base class for paint buffers, which define the rendering backend.
Definition qcustomplot.h:521
virtual void draw(QCPPainter *painter) const =0
QCPAbstractPaintBuffer(const QSize &size, double devicePixelRatio)
Definition qcustomplot.cpp:570
void setDevicePixelRatio(double ratio)
Definition qcustomplot.cpp:627
virtual void clear(const QColor &color)=0
void setSize(const QSize &size)
Definition qcustomplot.cpp:589
virtual void donePainting()
Definition qcustomplot.h:538
virtual void reallocateBuffer()=0
virtual QCPPainter * startPainting()=0
void setInvalidated(bool invalidated=true)
Definition qcustomplot.cpp:613
virtual QCPDataSelection selectTestRect(const QRectF &rect, bool onlySelectable) const Q_DECL_OVERRIDE
Definition qcustomplot.h:4222
QCPAbstractPlottable1D(QCPAxis *keyAxis, QCPAxis *valueAxis)
Definition qcustomplot.h:4104
virtual double selectTest(const QPointF &pos, bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE
Definition qcustomplot.h:4296
virtual QCPRange dataValueRange(int index) const Q_DECL_OVERRIDE
Definition qcustomplot.h:4176
virtual double dataMainValue(int index) const Q_DECL_OVERRIDE
Definition qcustomplot.h:4160
virtual QPointF dataPixelPosition(int index) const Q_DECL_OVERRIDE
Definition qcustomplot.h:4192
virtual int findEnd(double sortKey, bool expandedRange=true) const Q_DECL_OVERRIDE
Definition qcustomplot.h:4280
void drawPolyline(QCPPainter *painter, const QVector< QPointF > &lineData) const
Definition qcustomplot.h:4388
virtual double dataSortKey(int index) const Q_DECL_OVERRIDE
Definition qcustomplot.h:4144
virtual int dataCount() const Q_DECL_OVERRIDE
Definition qcustomplot.h:4119
virtual QCPPlottableInterface1D * interface1D() Q_DECL_OVERRIDE
Definition qcustomplot.h:3898
virtual int findBegin(double sortKey, bool expandedRange=true) const Q_DECL_OVERRIDE
Definition qcustomplot.h:4271
void getDataSegments(QList< QCPDataRange > &selectedSegments, QList< QCPDataRange > &unselectedSegments) const
Definition qcustomplot.h:4358
virtual double dataMainKey(int index) const Q_DECL_OVERRIDE
Definition qcustomplot.h:4128
virtual bool sortKeyIsMainKey() const Q_DECL_OVERRIDE
Definition qcustomplot.h:4209
The abstract base class for all data representing objects in a plot.
Definition qcustomplot.h:3296
QCPDataSelection selection() const
Definition qcustomplot.h:3324
void setAntialiasedFill(bool enabled)
Definition qcustomplot.cpp:10746
bool selected() const
Definition qcustomplot.h:3323
void rescaleAxes(bool onlyEnlarge=false) const
Definition qcustomplot.cpp:10994
void setSelectionDecorator(QCPSelectionDecorator *decorator)
Definition qcustomplot.cpp:10860
Q_SLOT void setSelection(QCPDataSelection selection)
Definition qcustomplot.cpp:10840
void setAntialiasedScatters(bool enabled)
Definition qcustomplot.cpp:10757
void pixelsToCoords(double x, double y, double &key, double &value) const
Definition qcustomplot.cpp:10955
void selectionChanged(bool selected)
virtual QCPPlottableInterface1D * interface1D()
Definition qcustomplot.h:3341
virtual QCPRange getKeyRange(bool &foundRange, QCP::SignDomain inSignDomain=QCP::sdBoth) const =0
void selectableChanged(QCP::SelectionType selectable)
bool addToLegend()
Definition qcustomplot.cpp:11121
void rescaleValueAxis(bool onlyEnlarge=false, bool inKeyRange=false) const
Definition qcustomplot.cpp:11047
void setValueAxis(QCPAxis *axis)
Definition qcustomplot.cpp:10816
QCPSelectionDecorator * selectionDecorator() const
Definition qcustomplot.h:3325
void selectionChanged(const QCPDataSelection &selection)
void setBrush(const QBrush &brush)
Definition qcustomplot.cpp:10784
void coordsToPixels(double key, double value, double &x, double &y) const
Definition qcustomplot.cpp:10913
void setKeyAxis(QCPAxis *axis)
Definition qcustomplot.cpp:10800
virtual QCPRange getValueRange(bool &foundRange, QCP::SignDomain inSignDomain=QCP::sdBoth, const QCPRange &inKeyRange=QCPRange()) const =0
void setPen(const QPen &pen)
Definition qcustomplot.cpp:10770
void setName(const QString &name)
Definition qcustomplot.cpp:10735
Q_SLOT void setSelectable(QCP::SelectionType selectable)
Definition qcustomplot.cpp:10887
bool removeFromLegend() const
Definition qcustomplot.cpp:11159
virtual double selectTest(const QPointF &pos, bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE=0
void rescaleKeyAxis(bool onlyEnlarge=false) const
Definition qcustomplot.cpp:11005
QCPAbstractPlottable(QCPAxis *keyAxis, QCPAxis *valueAxis)
Definition qcustomplot.cpp:10701
Definition qcustomplot.h:2225
QCPAxisPainterPrivate(QCustomPlot *parentPlot)
Definition qcustomplot.cpp:9187
Holds multiple axes and arranges them in a rectangular shape.
Definition qcustomplot.h:4594
bool removeAxis(QCPAxis *axis)
Definition qcustomplot.cpp:17035
int width() const
Definition qcustomplot.h:4659
QCPAxis * addAxis(QCPAxis::AxisType type, QCPAxis *axis=0)
Definition qcustomplot.cpp:16959
QPoint bottomRight() const
Definition qcustomplot.h:4665
int right() const
Definition qcustomplot.h:4656
int top() const
Definition qcustomplot.h:4657
QCPAxis * axis(QCPAxis::AxisType type, int index=0) const
Definition qcustomplot.cpp:16888
QPoint topLeft() const
Definition qcustomplot.h:4662
void setBackgroundScaledMode(Qt::AspectRatioMode mode)
Definition qcustomplot.cpp:17381
QCPAxisRect(QCustomPlot *parentPlot, bool setupDefaultAxes=true)
Definition qcustomplot.cpp:16819
void setRangeDragAxes(QCPAxis *horizontal, QCPAxis *vertical)
Definition qcustomplot.cpp:17527
QCPAxis * rangeZoomAxis(Qt::Orientation orientation)
Definition qcustomplot.cpp:17406
virtual void mouseReleaseEvent(QMouseEvent *event, const QPointF &startPos) Q_DECL_OVERRIDE
Definition qcustomplot.cpp:17901
QCPAxis * rangeDragAxis(Qt::Orientation orientation)
Definition qcustomplot.cpp:17392
QList< QCPAxis * > addAxes(QCPAxis::AxisTypes types)
Definition qcustomplot.cpp:17014
void setRangeZoom(Qt::Orientations orientations)
Definition qcustomplot.cpp:17512
QSize size() const
Definition qcustomplot.h:4661
QPoint topRight() const
Definition qcustomplot.h:4663
int axisCount(QCPAxis::AxisType type) const
Definition qcustomplot.cpp:16878
QList< QCPAxis * > rangeZoomAxes(Qt::Orientation orientation)
Definition qcustomplot.cpp:17445
void setRangeZoomFactor(double horizontalFactor, double verticalFactor)
Definition qcustomplot.cpp:17669
QList< QCPAxis * > axes(QCPAxis::AxisTypes types) const
Definition qcustomplot.cpp:16909
virtual void wheelEvent(QWheelEvent *event) Q_DECL_OVERRIDE
Definition qcustomplot.cpp:17927
void setRangeZoomAxes(QCPAxis *horizontal, QCPAxis *vertical)
Definition qcustomplot.cpp:17599
QCPLayoutInset * insetLayout() const
Definition qcustomplot.h:4645
virtual void mouseMoveEvent(QMouseEvent *event, const QPointF &startPos) Q_DECL_OVERRIDE
Definition qcustomplot.cpp:17841
virtual void mousePressEvent(QMouseEvent *event, const QVariant &details) Q_DECL_OVERRIDE
Definition qcustomplot.cpp:17809
QList< QCPAxis * > rangeDragAxes(Qt::Orientation orientation)
Definition qcustomplot.cpp:17419
QPoint bottomLeft() const
Definition qcustomplot.h:4664
int height() const
Definition qcustomplot.h:4660
int bottom() const
Definition qcustomplot.h:4658
virtual void update(UpdatePhase phase) Q_DECL_OVERRIDE
Definition qcustomplot.cpp:17257
QPoint center() const
Definition qcustomplot.h:4666
double rangeZoomFactor(Qt::Orientation orientation)
Definition qcustomplot.cpp:17471
void setRangeDrag(Qt::Orientations orientations)
Definition qcustomplot.cpp:17492
void setBackgroundScaled(bool scaled)
Definition qcustomplot.cpp:17371
void setBackground(const QPixmap &pm)
Definition qcustomplot.cpp:17322
int left() const
Definition qcustomplot.h:4655
static QDateTime keyToDateTime(double key)
Definition qcustomplot.cpp:6102
void setTickOrigin(double origin)
Definition qcustomplot.cpp:5944
QCPAxisTickerDateTime()
Definition qcustomplot.cpp:5899
static double dateTimeToKey(const QDateTime dateTime)
Definition qcustomplot.cpp:6122
void setDateTimeFormat(const QString &format)
Definition qcustomplot.cpp:5915
void setDateTimeSpec(Qt::TimeSpec spec)
Definition qcustomplot.cpp:5930
Specialized axis ticker with a fixed tick step.
Definition qcustomplot.h:1697
ScaleStrategy
Definition qcustomplot.h:1706
@ ssMultiples
An integer multiple of the specified tick step is allowed. The used factor follows the base class pro...
Definition qcustomplot.h:1707
@ ssNone
Modifications are not allowed, the specified tick step is absolutely fixed. This might cause a high t...
Definition qcustomplot.h:1706
@ ssPowers
An integer power of the specified tick step is allowed.
Definition qcustomplot.h:1708
QCPAxisTickerFixed()
Definition qcustomplot.cpp:6429
void setLogBase(double base)
Definition qcustomplot.cpp:7042
void setSubTickCount(int subTicks)
Definition qcustomplot.cpp:7062
QCPAxisTickerLog()
Definition qcustomplot.cpp:7031
Specialized axis ticker to display ticks in units of an arbitrary constant, for example pi.
Definition qcustomplot.h:1777
FractionStyle
Definition qcustomplot.h:1785
@ fsFloatingPoint
Fractions are displayed as regular decimal floating point numbers, e.g. "0.25" or "0....
Definition qcustomplot.h:1785
@ fsAsciiFractions
Fractions are written as rationals using ASCII characters only, e.g. "1/4" or "1/8".
Definition qcustomplot.h:1786
@ fsUnicodeFractions
Fractions are written using sub- and superscript UTF-8 digits and the fraction symbol.
Definition qcustomplot.h:1787
QCPAxisTickerPi()
Definition qcustomplot.cpp:6740
QCPAxisTickerText()
Definition qcustomplot.cpp:6544
QMap< double, QString > & ticks()
Definition qcustomplot.h:1744
Specialized axis ticker for time spans in units of milliseconds to days.
Definition qcustomplot.h:1645
QCPAxisTickerTime()
Definition qcustomplot.cpp:6196
TimeUnit
Definition qcustomplot.h:1653
@ tuSeconds
Seconds (%s in setTimeFormat).
Definition qcustomplot.h:1654
@ tuMinutes
Minutes (%m in setTimeFormat).
Definition qcustomplot.h:1655
@ tuMilliseconds
Milliseconds, one thousandth of a second (%z in setTimeFormat).
Definition qcustomplot.h:1653
@ tuHours
Hours (%h in setTimeFormat).
Definition qcustomplot.h:1656
@ tuDays
Days (%d in setTimeFormat).
Definition qcustomplot.h:1657
The base class tick generator used by QCPAxis to create tick positions and tick labels.
Definition qcustomplot.h:1539
QCPAxisTicker()
Definition qcustomplot.cpp:5496
TickStepStrategy
Definition qcustomplot.h:1548
@ tssMeetTickCount
Less readable tick steps are allowed which in turn facilitates getting closer to the requested tick c...
Definition qcustomplot.h:1550
@ tssReadability
A nicely readable tick step is prioritized over matching the requested number of ticks (see setTickCo...
Definition qcustomplot.h:1549
Manages a single axis inside a QCustomPlot.
Definition qcustomplot.h:1920
void setSelectedLabelFont(const QFont &font)
Definition qcustomplot.cpp:8319
void setOffset(int offset)
Definition qcustomplot.cpp:8295
void setTickLabels(bool show)
Definition qcustomplot.cpp:7905
void rangeChanged(const QCPRange &newRange)
void setLowerEnding(const QCPLineEnding &ending)
Definition qcustomplot.cpp:8388
void setTickLabelSide(LabelSide side)
Definition qcustomplot.cpp:7978
void setTickLabelRotation(double degrees)
Definition qcustomplot.cpp:7962
void setRangeReversed(bool reversed)
Definition qcustomplot.cpp:7858
void setNumberPrecision(int precision)
Definition qcustomplot.cpp:8074
LabelSide
Definition qcustomplot.h:1985
@ lsOutside
Tick labels will be displayed outside the axis rect.
Definition qcustomplot.h:1986
@ lsInside
Tick labels will be displayed inside the axis rect and clipped to the inner axis rect.
Definition qcustomplot.h:1985
void setSelectedSubTickPen(const QPen &pen)
Definition qcustomplot.cpp:8373
void setTickLabelFont(const QFont &font)
Definition qcustomplot.cpp:7934
void setLabel(const QString &str)
Definition qcustomplot.cpp:8245
void scaleTypeChanged(QCPAxis::ScaleType scaleType)
ScaleType
Definition qcustomplot.h:1993
@ stLogarithmic
Logarithmic scaling with correspondingly transformed axis coordinates (possibly also setTicker to a Q...
Definition qcustomplot.h:1994
@ stLinear
Linear scaling.
Definition qcustomplot.h:1993
void setTickLabelColor(const QColor &color)
Definition qcustomplot.cpp:7948
void setTickLengthOut(int outside)
Definition qcustomplot.cpp:8118
void setLabelPadding(int padding)
Definition qcustomplot.cpp:8259
int pixelOrientation() const
Definition qcustomplot.h:2109
void setSubTickLengthOut(int outside)
Definition qcustomplot.cpp:8178
void setTicker(QSharedPointer< QCPAxisTicker > ticker)
Definition qcustomplot.cpp:7876
Q_SLOT void setSelectableParts(const QCPAxis::SelectableParts &selectableParts)
Definition qcustomplot.cpp:7722
void setPadding(int padding)
Definition qcustomplot.cpp:8278
void setSelectedLabelColor(const QColor &color)
Definition qcustomplot.cpp:8343
virtual void mousePressEvent(QMouseEvent *event, const QVariant &details) Q_DECL_OVERRIDE
Definition qcustomplot.cpp:8825
void selectionChanged(const QCPAxis::SelectableParts &parts)
QCPGrid * grid() const
Definition qcustomplot.h:2056
void setUpperEnding(const QCPLineEnding &ending)
Definition qcustomplot.cpp:8403
void setLabelColor(const QColor &color)
Definition qcustomplot.cpp:8236
void setLabelFont(const QFont &font)
Definition qcustomplot.cpp:8222
void setBasePen(const QPen &pen)
Definition qcustomplot.cpp:8192
virtual void mouseReleaseEvent(QMouseEvent *event, const QPointF &startPos) Q_DECL_OVERRIDE
Definition qcustomplot.cpp:8897
QSharedPointer< QCPAxisTicker > ticker() const
Definition qcustomplot.h:2019
void setSelectedTickPen(const QPen &pen)
Definition qcustomplot.cpp:8363
void setSelectedTickLabelFont(const QFont &font)
Definition qcustomplot.cpp:8305
static Qt::Orientation orientation(AxisType type)
Definition qcustomplot.h:2123
void setSelectedTickLabelColor(const QColor &color)
Definition qcustomplot.cpp:8330
void selectableChanged(const QCPAxis::SelectableParts &parts)
virtual void wheelEvent(QWheelEvent *event) Q_DECL_OVERRIDE
Definition qcustomplot.cpp:8924
void rangeChanged(const QCPRange &newRange, const QCPRange &oldRange)
Qt::Orientation orientation() const
Definition qcustomplot.h:2108
Q_SLOT void setSelectedParts(const QCPAxis::SelectableParts &selectedParts)
Definition qcustomplot.cpp:7746
SelectablePart
Definition qcustomplot.h:2001
@ spTickLabels
Tick labels (numbers) of this axis (as a whole, not individually).
Definition qcustomplot.h:2003
@ spAxisLabel
The axis label.
Definition qcustomplot.h:2004
@ spAxis
The axis backbone and tick marks.
Definition qcustomplot.h:2002
@ spNone
None of the selectable parts.
Definition qcustomplot.h:2001
void setSubTickLengthIn(int inside)
Definition qcustomplot.cpp:8163
virtual void mouseMoveEvent(QMouseEvent *event, const QPointF &startPos) Q_DECL_OVERRIDE
Definition qcustomplot.cpp:8863
QCPAxis(QCPAxisRect *parent, AxisType type)
Definition qcustomplot.cpp:7506
void setTicks(bool show)
Definition qcustomplot.cpp:7893
void setTickPen(const QPen &pen)
Definition qcustomplot.cpp:8202
Q_SLOT void setScaleType(QCPAxis::ScaleType type)
Definition qcustomplot.cpp:7674
AxisType
Definition qcustomplot.h:1972
@ atBottom
0x08 Axis is horizontal and on the bottom side of the axis rect
Definition qcustomplot.h:1975
@ atTop
0x04 Axis is horizontal and on the top side of the axis rect
Definition qcustomplot.h:1974
@ atRight
0x02 Axis is vertical and on the right side of the axis rect
Definition qcustomplot.h:1973
@ atLeft
0x01 Axis is vertical and on the left side of the axis rect
Definition qcustomplot.h:1972
void setNumberFormat(const QString &formatCode)
Definition qcustomplot.cpp:8014
void setSelectedBasePen(const QPen &pen)
Definition qcustomplot.cpp:8353
Q_SLOT void setRange(const QCPRange &range)
Definition qcustomplot.cpp:7694
void setSubTickPen(const QPen &pen)
Definition qcustomplot.cpp:8212
void setTickLabelPadding(int padding)
Definition qcustomplot.cpp:7920
void setSubTicks(bool show)
Definition qcustomplot.cpp:8134
void setTickLengthIn(int inside)
Definition qcustomplot.cpp:8103
double sortKey() const
Definition qcustomplot.h:5457
static bool sortKeyIsMainKey()
Definition qcustomplot.h:5459
double mainValue() const
Definition qcustomplot.h:5462
QCPBarsData()
Definition qcustomplot.cpp:23560
double mainKey() const
Definition qcustomplot.h:5461
QCPRange valueRange() const
Definition qcustomplot.h:5464
static QCPBarsData fromSortKey(double sortKey)
Definition qcustomplot.h:5458
Groups multiple QCPBars together so they appear side by side.
Definition qcustomplot.h:5387
void setSpacingType(SpacingType spacingType)
Definition qcustomplot.cpp:23256
int size() const
Definition qcustomplot.h:5420
SpacingType
Definition qcustomplot.h:5400
@ stAbsolute
Bar spacing is in absolute pixels.
Definition qcustomplot.h:5400
@ stPlotCoords
Bar spacing is in key coordinates and thus scales with the key axis range.
Definition qcustomplot.h:5402
@ stAxisRectRatio
Bar spacing is given by a fraction of the axis rect size.
Definition qcustomplot.h:5401
QList< QCPBars * > bars() const
Definition qcustomplot.h:5418
QCPBarsGroup(QCustomPlot *parentPlot)
Definition qcustomplot.cpp:23236
void setSpacing(double spacing)
Definition qcustomplot.cpp:23267
bool isEmpty() const
Definition qcustomplot.h:5421
bool contains(QCPBars *bars) const
Definition qcustomplot.h:5423
A plottable representing a bar chart in a plot.
Definition qcustomplot.h:5483
QCPBars * barBelow() const
Definition qcustomplot.h:5516
void setBaseValue(double baseValue)
Definition qcustomplot.cpp:23763
QCPBars(QCPAxis *keyAxis, QCPAxis *valueAxis)
Definition qcustomplot.cpp:23650
WidthType
Definition qcustomplot.h:5501
@ wtAxisRectRatio
Bar width is given by a fraction of the axis rect size.
Definition qcustomplot.h:5502
@ wtPlotCoords
Bar width is in key coordinates and thus scales with the key axis range.
Definition qcustomplot.h:5503
@ wtAbsolute
Bar width is in absolute pixels.
Definition qcustomplot.h:5501
QSharedPointer< QCPBarsDataContainer > data() const
Definition qcustomplot.h:5518
QCPBars * barAbove() const
Definition qcustomplot.h:5517
void setWidthType(WidthType widthType)
Definition qcustomplot.cpp:23729
void setStackingGap(double pixels)
Definition qcustomplot.cpp:23773
void setBarsGroup(QCPBarsGroup *barsGroup)
Definition qcustomplot.cpp:23740
void setWidth(double width)
Definition qcustomplot.cpp:23716
Defines a color gradient for use with e.g. QCPColorMap.
Definition qcustomplot.h:4442
QCPColorGradient()
Definition qcustomplot.cpp:15790
ColorInterpolation
Definition qcustomplot.h:4450
@ ciRGB
Color channels red, green and blue are linearly interpolated.
Definition qcustomplot.h:4450
@ ciHSV
Color channels hue, saturation and value are linearly interpolated (The hue is interpolated over the ...
Definition qcustomplot.h:4451
GradientPreset
Definition qcustomplot.h:4459
@ gpNight
Continuous lightness from black over weak blueish colors to white (suited for non-biased data represe...
Definition qcustomplot.h:4462
@ gpHues
Full hue cycle, with highest and lowest color red (suitable for periodic data, such as angles and pha...
Definition qcustomplot.h:4470
@ gpGeography
Colors suitable to represent different elevations on geographical maps.
Definition qcustomplot.h:4464
@ gpIon
Half hue spectrum from black over purple to blue and finally green (creates banding illusion but allo...
Definition qcustomplot.h:4465
@ gpHot
Continuous lightness from black over firey colors to white (suited for non-biased data representation...
Definition qcustomplot.h:4460
@ gpJet
Hue variation similar to a spectrum, often used in numerical visualization (creates banding illusion ...
Definition qcustomplot.h:4469
@ gpCandy
Blue over pink to white.
Definition qcustomplot.h:4463
@ gpPolar
Colors suitable to emphasize polarity around the center, with blue for negative, black in the middle ...
Definition qcustomplot.h:4467
@ gpSpectrum
An approximation of the visible light spectrum (creates banding illusion but allows more precise magn...
Definition qcustomplot.h:4468
@ gpGrayscale
Continuous lightness from black to white (suited for non-biased data representation).
Definition qcustomplot.h:4459
@ gpCold
Continuous lightness from black over icey colors to white (suited for non-biased data representation)...
Definition qcustomplot.h:4461
@ gpThermal
Colors suitable for thermal imaging, ranging from dark blue over purple to orange,...
Definition qcustomplot.h:4466
Holds the two-dimensional data of a QCPColorMap plottable.
Definition qcustomplot.h:5692
void setKeyRange(const QCPRange &keyRange)
Definition qcustomplot.cpp:25254
void setValueSize(int valueSize)
Definition qcustomplot.cpp:25223
void setSize(int keySize, int valueSize)
Definition qcustomplot.cpp:25166
void clearAlpha()
Definition qcustomplot.cpp:25399
void fill(double z)
Definition qcustomplot.cpp:25412
unsigned char alpha(int keyIndex, int valueIndex)
Definition qcustomplot.cpp:25146
void setCell(int keyIndex, int valueIndex, double z)
Definition qcustomplot.cpp:25312
void fillAlpha(unsigned char alpha)
Definition qcustomplot.cpp:25430
void clear()
Definition qcustomplot.cpp:25391
QCPColorMapData(int keySize, int valueSize, const QCPRange &keyRange, const QCPRange &valueRange)
Definition qcustomplot.cpp:25054
void setRange(const QCPRange &keyRange, const QCPRange &valueRange)
Definition qcustomplot.cpp:25238
void setAlpha(int keyIndex, int valueIndex, unsigned char alpha)
Definition qcustomplot.cpp:25341
void recalculateDataBounds()
Definition qcustomplot.cpp:25367
void setKeySize(int keySize)
Definition qcustomplot.cpp:25208
void setValueRange(const QCPRange &valueRange)
Definition qcustomplot.cpp:25269
bool isEmpty() const
Definition qcustomplot.h:5726
void setData(double key, double value, double z)
Definition qcustomplot.cpp:25286
QCPColorMapData & operator=(const QCPColorMapData &other)
Definition qcustomplot.cpp:25094
A plottable representing a two-dimensional color map in a plot.
Definition qcustomplot.h:5749
QCPColorMapData * data() const
Definition qcustomplot.h:5764
void gradientChanged(const QCPColorGradient &newGradient)
void setInterpolate(bool enabled)
Definition qcustomplot.cpp:25758
Q_SLOT void setGradient(const QCPColorGradient &gradient)
Definition qcustomplot.cpp:25742
void dataRangeChanged(const QCPRange &newRange)
void dataScaleTypeChanged(QCPAxis::ScaleType scaleType)
Q_SLOT void setDataRange(const QCPRange &dataRange)
Definition qcustomplot.cpp:25700
Q_SLOT void setDataScaleType(QCPAxis::ScaleType scaleType)
Definition qcustomplot.cpp:25719
QCPColorMap(QCPAxis *keyAxis, QCPAxis *valueAxis)
Definition qcustomplot.cpp:25651
void setColorScale(QCPColorScale *colorScale)
Definition qcustomplot.cpp:25794
void setTightBoundary(bool enabled)
Definition qcustomplot.cpp:25775
QCPColorScaleAxisRectPrivate(QCPColorScale *parentColorScale)
Definition qcustomplot.cpp:19798
A color scale for use with color coding data such as QCPColorMap.
Definition qcustomplot.h:5050
void setType(QCPAxis::AxisType type)
Definition qcustomplot.cpp:19435
Q_SLOT void setGradient(const QCPColorGradient &gradient)
Definition qcustomplot.cpp:19539
void setRangeDrag(bool enabled)
Definition qcustomplot.cpp:19580
QCPAxis * axis() const
Definition qcustomplot.h:5067
virtual void mouseMoveEvent(QMouseEvent *event, const QPointF &startPos) Q_DECL_OVERRIDE
Definition qcustomplot.cpp:19748
void gradientChanged(const QCPColorGradient &newGradient)
void dataScaleTypeChanged(QCPAxis::ScaleType scaleType)
virtual void wheelEvent(QWheelEvent *event) Q_DECL_OVERRIDE
Definition qcustomplot.cpp:19770
void dataRangeChanged(const QCPRange &newRange)
virtual void mouseReleaseEvent(QMouseEvent *event, const QPointF &startPos) Q_DECL_OVERRIDE
Definition qcustomplot.cpp:19759
virtual void mousePressEvent(QMouseEvent *event, const QVariant &details) Q_DECL_OVERRIDE
Definition qcustomplot.cpp:19737
void setRangeZoom(bool enabled)
Definition qcustomplot.cpp:19600
QCPColorScale(QCustomPlot *parentPlot)
Definition qcustomplot.cpp:19371
void setBarWidth(int width)
Definition qcustomplot.cpp:19569
Q_SLOT void setDataRange(const QCPRange &dataRange)
Definition qcustomplot.cpp:19489
Q_SLOT void setDataScaleType(QCPAxis::ScaleType scaleType)
Definition qcustomplot.cpp:19519
void setLabel(const QString &str)
Definition qcustomplot.cpp:19554
static bool sortKeyIsMainKey()
Definition qcustomplot.h:5279
double mainValue() const
Definition qcustomplot.h:5282
static QCPCurveData fromSortKey(double sortKey)
Definition qcustomplot.h:5278
QCPCurveData()
Definition qcustomplot.cpp:21784
double sortKey() const
Definition qcustomplot.h:5277
double mainKey() const
Definition qcustomplot.h:5281
QCPRange valueRange() const
Definition qcustomplot.h:5284
A plottable representing a parametric curve in a plot.
Definition qcustomplot.h:5304
LineStyle
Definition qcustomplot.h:5317
@ lsLine
Data points are connected with a straight line.
Definition qcustomplot.h:5318
@ lsNone
No line is drawn between data points (e.g. only scatters).
Definition qcustomplot.h:5317
QCPCurve(QCPAxis *keyAxis, QCPAxis *valueAxis)
Definition qcustomplot.cpp:21863
void setLineStyle(LineStyle style)
Definition qcustomplot.cpp:21969
void setScatterStyle(const QCPScatterStyle &style)
Definition qcustomplot.cpp:21941
QSharedPointer< QCPCurveDataContainer > data() const
Definition qcustomplot.h:5326
void setScatterSkip(int skip)
Definition qcustomplot.cpp:21957
The generic data container for one-dimensional plottables.
Definition qcustomplot.h:2413
void setAutoSqueeze(bool enabled)
Definition qcustomplot.h:2623
const_iterator findBegin(double sortKey, bool expandedRange=true) const
Definition qcustomplot.h:2906
void remove(double sortKey)
Definition qcustomplot.h:2819
QCPRange valueRange(bool &foundRange, QCP::SignDomain signDomain=QCP::sdBoth, const QCPRange &inKeyRange=QCPRange())
Definition qcustomplot.h:3083
iterator end()
Definition qcustomplot.h:2445
void add(const QCPDataContainer< DataType > &data)
Definition qcustomplot.h:2672
void add(const QVector< DataType > &data, bool alreadySorted=false)
Definition qcustomplot.h:2704
iterator begin()
Definition qcustomplot.h:2444
void add(const DataType &data)
Definition qcustomplot.h:2741
bool qcpLessThanSortKey(const DataType &a, const DataType &b)
Definition qcustomplot.h:2409
void sort()
Definition qcustomplot.h:2858
bool isEmpty() const
Definition qcustomplot.h:2422
void clear()
Definition qcustomplot.h:2839
void squeeze(bool preAllocation=true, bool postAllocation=true)
Definition qcustomplot.h:2874
int size() const
Definition qcustomplot.h:2421
void limitIteratorsToDataRange(const_iterator &begin, const_iterator &end, const QCPDataRange &dataRange) const
Definition qcustomplot.h:3171
const_iterator constEnd() const
Definition qcustomplot.h:2443
void removeBefore(double sortKey)
Definition qcustomplot.h:2765
QCPRange keyRange(bool &foundRange, QCP::SignDomain signDomain=QCP::sdBoth)
Definition qcustomplot.h:2960
void removeAfter(double sortKey)
Definition qcustomplot.h:2780
const_iterator at(int index) const
Definition qcustomplot.h:2448
void remove(double sortKeyFrom, double sortKeyTo)
Definition qcustomplot.h:2797
void set(const QCPDataContainer< DataType > &data)
Definition qcustomplot.h:2640
QCPDataRange dataRange() const
Definition qcustomplot.h:2451
QCPDataContainer()
Definition qcustomplot.h:2607
const_iterator findEnd(double sortKey, bool expandedRange=true) const
Definition qcustomplot.h:2933
const_iterator constBegin() const
Definition qcustomplot.h:2442
void set(const QVector< DataType > &data, bool alreadySorted=false)
Definition qcustomplot.h:2656
Describes a data range given by begin and end index.
Definition qcustomplot.h:896
int length() const
Definition qcustomplot.h:908
void setEnd(int end)
Definition qcustomplot.h:912
QCPDataRange adjusted(int changeBegin, int changeEnd) const
Definition qcustomplot.h:920
QCPDataRange()
Definition qcustomplot.cpp:2230
void setBegin(int begin)
Definition qcustomplot.h:911
QCPDataRange bounded(const QCPDataRange &other) const
Definition qcustomplot.cpp:2256
bool isValid() const
Definition qcustomplot.h:915
bool isEmpty() const
Definition qcustomplot.h:916
int size() const
Definition qcustomplot.h:907
Describes a data set by holding multiple QCPDataRange instances.
Definition qcustomplot.h:933
QCPDataSelection()
Definition qcustomplot.cpp:2388
friend const QCPDataSelection operator-(const QCPDataSelection &a, const QCPDataSelection &b)
Definition qcustomplot.h:1027
QCPDataSelection & operator+=(const QCPDataSelection &other)
Definition qcustomplot.cpp:2423
void addDataRange(const QCPDataRange &dataRange, bool simplify=true)
Definition qcustomplot.cpp:2547
friend const QCPDataSelection operator+(const QCPDataSelection &a, const QCPDataSelection &b)
Definition qcustomplot.h:984
void simplify()
Definition qcustomplot.cpp:2573
bool operator==(const QCPDataSelection &other) const
Definition qcustomplot.cpp:2407
QCPDataSelection & operator-=(const QCPDataSelection &other)
Definition qcustomplot.cpp:2443
QCPDataRange dataRange(int index=0) const
Definition qcustomplot.cpp:2517
bool isEmpty() const
Definition qcustomplot.h:963
int dataRangeCount() const
Definition qcustomplot.h:954
QList< QCPDataRange > dataRanges() const
Definition qcustomplot.h:957
QCPDataSelection inverse(const QCPDataRange &outerRange) const
Definition qcustomplot.cpp:2712
Holds the data of one single error bar for QCPErrorBars.
Definition qcustomplot.h:5967
QCPErrorBarsData()
Definition qcustomplot.cpp:27119
A plottable that adds a set of error bars to other plottables.
Definition qcustomplot.h:5996
void setSymbolGap(double pixels)
Definition qcustomplot.cpp:27326
QCPErrorBars(QCPAxis *keyAxis, QCPAxis *valueAxis)
Definition qcustomplot.cpp:27202
void setData(QSharedPointer< QCPErrorBarsDataContainer > data)
Definition qcustomplot.cpp:27235
ErrorType
Definition qcustomplot.h:6013
@ etValueError
The errors are for the value dimension (bars appear parallel to the value axis).
Definition qcustomplot.h:6014
@ etKeyError
The errors are for the key dimension (bars appear parallel to the key axis).
Definition qcustomplot.h:6013
void setDataPlottable(QCPAbstractPlottable *plottable)
Definition qcustomplot.cpp:27285
void setWhiskerWidth(double pixels)
Definition qcustomplot.cpp:27316
virtual QCPPlottableInterface1D * interface1D() Q_DECL_OVERRIDE
Definition qcustomplot.h:6056
QSharedPointer< QCPErrorBarsDataContainer > data() const
Definition qcustomplot.h:6021
void setErrorType(ErrorType type)
Definition qcustomplot.cpp:27307
QCPRange valueRange() const
Definition qcustomplot.h:5840
QCPFinancialData()
Definition qcustomplot.cpp:26212
static bool sortKeyIsMainKey()
Definition qcustomplot.h:5835
static QCPFinancialData fromSortKey(double sortKey)
Definition qcustomplot.h:5834
double mainValue() const
Definition qcustomplot.h:5838
double sortKey() const
Definition qcustomplot.h:5833
double mainKey() const
Definition qcustomplot.h:5837
A plottable representing a financial stock chart.
Definition qcustomplot.h:5859
ChartStyle
Definition qcustomplot.h:5889
@ csOhlc
Open-High-Low-Close bar representation.
Definition qcustomplot.h:5889
@ csCandlestick
Candlestick representation.
Definition qcustomplot.h:5890
void setTwoColored(bool twoColored)
Definition qcustomplot.cpp:26403
void setWidthType(WidthType widthType)
Definition qcustomplot.cpp:26389
QCPFinancial(QCPAxis *keyAxis, QCPAxis *valueAxis)
Definition qcustomplot.cpp:26308
void setChartStyle(ChartStyle style)
Definition qcustomplot.cpp:26366
void setBrushPositive(const QBrush &brush)
Definition qcustomplot.cpp:26417
void setBrushNegative(const QBrush &brush)
Definition qcustomplot.cpp:26431
void setWidth(double width)
Definition qcustomplot.cpp:26376
QSharedPointer< QCPFinancialDataContainer > data() const
Definition qcustomplot.h:5898
void setPenPositive(const QPen &pen)
Definition qcustomplot.cpp:26445
WidthType
Definition qcustomplot.h:5878
@ wtAbsolute
width is in absolute pixels
Definition qcustomplot.h:5878
@ wtAxisRectRatio
width is given by a fraction of the axis rect size
Definition qcustomplot.h:5879
@ wtPlotCoords
width is in key coordinates and thus scales with the key axis range
Definition qcustomplot.h:5880
void setPenNegative(const QPen &pen)
Definition qcustomplot.cpp:26459
double mainValue() const
Definition qcustomplot.h:5143
QCPRange valueRange() const
Definition qcustomplot.h:5145
static QCPGraphData fromSortKey(double sortKey)
Definition qcustomplot.h:5139
double sortKey() const
Definition qcustomplot.h:5138
static bool sortKeyIsMainKey()
Definition qcustomplot.h:5140
double mainKey() const
Definition qcustomplot.h:5142
QCPGraphData()
Definition qcustomplot.cpp:20027
A plottable representing a graph in a plot.
Definition qcustomplot.h:5164
QCPGraph(QCPAxis *keyAxis, QCPAxis *valueAxis)
Definition qcustomplot.cpp:20108
void setScatterStyle(const QCPScatterStyle &style)
Definition qcustomplot.cpp:20181
QSharedPointer< QCPGraphDataContainer > data() const
Definition qcustomplot.h:5193
void setScatterSkip(int skip)
Definition qcustomplot.cpp:20197
void setChannelFillGraph(QCPGraph *targetGraph)
Definition qcustomplot.cpp:20211
void setLineStyle(LineStyle ls)
Definition qcustomplot.cpp:20170
void setAdaptiveSampling(bool enabled)
Definition qcustomplot.cpp:20262
LineStyle
Definition qcustomplot.h:5179
@ lsLine
data points are connected by a straight line
Definition qcustomplot.h:5181
@ lsStepCenter
line is drawn as steps where the step is in between two data points
Definition qcustomplot.h:5184
@ lsStepRight
line is drawn as steps where the step height is the value of the right data point
Definition qcustomplot.h:5183
@ lsImpulse
each data point is represented by a line parallel to the value axis, which reaches from the data poin...
Definition qcustomplot.h:5185
@ lsStepLeft
line is drawn as steps where the step height is the value of the left data point
Definition qcustomplot.h:5182
@ lsNone
Definition qcustomplot.h:5179
void setZeroLinePen(const QPen &pen)
Definition qcustomplot.cpp:7231
void setAntialiasedZeroLine(bool enabled)
Definition qcustomplot.cpp:7204
void setAntialiasedSubGrid(bool enabled)
Definition qcustomplot.cpp:7196
void setSubGridPen(const QPen &pen)
Definition qcustomplot.cpp:7220
void setPen(const QPen &pen)
Definition qcustomplot.cpp:7212
QCPGrid(QCPAxis *parentAxis)
Definition qcustomplot.cpp:7168
void setSubGridVisible(bool visible)
Definition qcustomplot.cpp:7188
An anchor of an item to which positions can be attached to.
Definition qcustomplot.h:3406
virtual QPointF pixelPosition() const
Definition qcustomplot.cpp:11355
QCPItemAnchor(QCustomPlot *parentPlot, QCPAbstractItem *parentItem, const QString &name, int anchorId=-1)
Definition qcustomplot.cpp:11326
virtual QCPItemPosition * toQCPItemPosition()
Definition qcustomplot.h:3427
A bracket for referencing/highlighting certain parts in the plot.
Definition qcustomplot.h:6609
void setSelectedPen(const QPen &pen)
Definition qcustomplot.cpp:30046
QCPItemBracket(QCustomPlot *parentPlot)
Definition qcustomplot.cpp:30008
void setStyle(BracketStyle style)
Definition qcustomplot.cpp:30069
BracketStyle
Definition qcustomplot.h:6624
@ bsRound
A brace with round edges.
Definition qcustomplot.h:6625
@ bsCurly
A curly brace.
Definition qcustomplot.h:6626
@ bsSquare
A brace with angled edges.
Definition qcustomplot.h:6624
@ bsCalligraphic
A curly brace with varying stroke width giving a calligraphic impression.
Definition qcustomplot.h:6627
void setPen(const QPen &pen)
Definition qcustomplot.cpp:30036
void setLength(double length)
Definition qcustomplot.cpp:30059
void setPen(const QPen &pen)
Definition qcustomplot.cpp:28529
void setHead(const QCPLineEnding &head)
Definition qcustomplot.cpp:28552
void setSelectedPen(const QPen &pen)
Definition qcustomplot.cpp:28539
virtual double selectTest(const QPointF &pos, bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE
Definition qcustomplot.cpp:28571
void setTail(const QCPLineEnding &tail)
Definition qcustomplot.cpp:28565
QCPItemCurve(QCustomPlot *parentPlot)
Definition qcustomplot.cpp:28504
void setBrush(const QBrush &brush)
Definition qcustomplot.cpp:29221
void setSelectedPen(const QPen &pen)
Definition qcustomplot.cpp:29210
QCPItemEllipse(QCustomPlot *parentPlot)
Definition qcustomplot.cpp:29168
void setSelectedBrush(const QBrush &brush)
Definition qcustomplot.cpp:29232
virtual double selectTest(const QPointF &pos, bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE
Definition qcustomplot.cpp:29238
void setPen(const QPen &pen)
Definition qcustomplot.cpp:29200
QCPItemLine(QCustomPlot *parentPlot)
Definition qcustomplot.cpp:28266
void setSelectedPen(const QPen &pen)
Definition qcustomplot.cpp:28297
void setPen(const QPen &pen)
Definition qcustomplot.cpp:28287
virtual double selectTest(const QPointF &pos, bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE
Definition qcustomplot.cpp:28329
void setTail(const QCPLineEnding &tail)
Definition qcustomplot.cpp:28323
void setHead(const QCPLineEnding &head)
Definition qcustomplot.cpp:28310
virtual double selectTest(const QPointF &pos, bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE
Definition qcustomplot.cpp:29432
void setPixmap(const QPixmap &pixmap)
Definition qcustomplot.cpp:29391
QCPItemPixmap(QCustomPlot *parentPlot)
Definition qcustomplot.cpp:29362
void setScaled(bool scaled, Qt::AspectRatioMode aspectRatioMode=Qt::KeepAspectRatio, Qt::TransformationMode transformationMode=Qt::SmoothTransformation)
Definition qcustomplot.cpp:29403
void setPen(const QPen &pen)
Definition qcustomplot.cpp:29416
void setSelectedPen(const QPen &pen)
Definition qcustomplot.cpp:29426
Manages the position of an item.
Definition qcustomplot.h:3444
QCPItemAnchor * parentAnchor() const
Definition qcustomplot.h:3471
virtual QCPItemPosition * toQCPItemPosition() Q_DECL_OVERRIDE
Definition qcustomplot.h:3504
QCPItemPosition(QCustomPlot *parentPlot, QCPAbstractItem *parentItem, const QString &name)
Definition qcustomplot.cpp:11499
PositionType
Definition qcustomplot.h:3453
@ ptAxisRectRatio
Definition qcustomplot.h:3457
@ ptAbsolute
Static positioning in pixels, starting from the top left corner of the viewport/widget.
Definition qcustomplot.h:3453
@ ptViewportRatio
Definition qcustomplot.h:3454
@ ptPlotCoords
Dynamic positioning at a plot coordinate defined by two axes (see setAxes).
Definition qcustomplot.h:3460
PositionType type() const
Definition qcustomplot.h:3468
virtual double selectTest(const QPointF &pos, bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE
Definition qcustomplot.cpp:28730
QCPItemRect(QCustomPlot *parentPlot)
Definition qcustomplot.cpp:28663
void setPen(const QPen &pen)
Definition qcustomplot.cpp:28692
void setSelectedPen(const QPen &pen)
Definition qcustomplot.cpp:28702
void setBrush(const QBrush &brush)
Definition qcustomplot.cpp:28713
void setSelectedBrush(const QBrush &brush)
Definition qcustomplot.cpp:28724
virtual double selectTest(const QPointF &pos, bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE
Definition qcustomplot.cpp:28120
QCPItemStraightLine(QCustomPlot *parentPlot)
Definition qcustomplot.cpp:28083
void setSelectedPen(const QPen &pen)
Definition qcustomplot.cpp:28114
void setPen(const QPen &pen)
Definition qcustomplot.cpp:28104
void setSelectedFont(const QFont &font)
Definition qcustomplot.cpp:28931
void setBrush(const QBrush &brush)
Definition qcustomplot.cpp:28900
void setSelectedPen(const QPen &pen)
Definition qcustomplot.cpp:28889
void setText(const QString &text)
Definition qcustomplot.cpp:28942
void setRotation(double degrees)
Definition qcustomplot.cpp:28976
virtual double selectTest(const QPointF &pos, bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE
Definition qcustomplot.cpp:28991
void setSelectedBrush(const QBrush &brush)
Definition qcustomplot.cpp:28911
QCPItemText(QCustomPlot *parentPlot)
Definition qcustomplot.cpp:28826
void setPositionAlignment(Qt::Alignment alignment)
Definition qcustomplot.cpp:28959
void setFont(const QFont &font)
Definition qcustomplot.cpp:28921
void setPen(const QPen &pen)
Definition qcustomplot.cpp:28878
void setColor(const QColor &color)
Definition qcustomplot.cpp:28859
void setTextAlignment(Qt::Alignment alignment)
Definition qcustomplot.cpp:28967
void setSelectedColor(const QColor &color)
Definition qcustomplot.cpp:28867
void setPadding(const QMargins &padding)
Definition qcustomplot.cpp:28985
Item that sticks to QCPGraph data points.
Definition qcustomplot.h:6523
void setSelectedBrush(const QBrush &brush)
Definition qcustomplot.cpp:29704
void setBrush(const QBrush &brush)
Definition qcustomplot.cpp:29694
TracerStyle
Definition qcustomplot.h:6542
@ tsPlus
A plus shaped crosshair with limited size.
Definition qcustomplot.h:6543
@ tsSquare
A square.
Definition qcustomplot.h:6546
@ tsNone
The tracer is not visible.
Definition qcustomplot.h:6542
@ tsCircle
A circle.
Definition qcustomplot.h:6545
@ tsCrosshair
A plus shaped crosshair which spans the complete axis rect.
Definition qcustomplot.h:6544
void setStyle(TracerStyle style)
Definition qcustomplot.cpp:29724
void setGraphKey(double key)
Definition qcustomplot.cpp:29766
void setInterpolating(bool enabled)
Definition qcustomplot.cpp:29782
QCPItemTracer(QCustomPlot *parentPlot)
Definition qcustomplot.cpp:29648
void setSelectedPen(const QPen &pen)
Definition qcustomplot.cpp:29684
void setSize(double size)
Definition qcustomplot.cpp:29713
void setGraph(QCPGraph *graph)
Definition qcustomplot.cpp:29739
void setPen(const QPen &pen)
Definition qcustomplot.cpp:29674
A layer that may contain objects, to control the rendering order.
Definition qcustomplot.h:629
QList< QCPLayerable * > children() const
Definition qcustomplot.h:660
QCPLayer(QCustomPlot *parentPlot, const QString &layerName)
Definition qcustomplot.cpp:1042
LayerMode
Definition qcustomplot.h:648
@ lmLogical
Layer is used only for rendering order, and shares paint buffer with all other adjacent logical layer...
Definition qcustomplot.h:648
@ lmBuffered
Layer has its own paint buffer and may be replotted individually (see replot).
Definition qcustomplot.h:649
void setMode(LayerMode mode)
Definition qcustomplot.cpp:1102
void setVisible(bool visible)
Definition qcustomplot.cpp:1076
int index() const
Definition qcustomplot.h:659
Base class for all drawable objects.
Definition qcustomplot.h:698
void setVisible(bool on)
Definition qcustomplot.cpp:1370
virtual void mouseDoubleClickEvent(QMouseEvent *event, const QVariant &details)
Definition qcustomplot.cpp:1780
virtual void wheelEvent(QWheelEvent *event)
Definition qcustomplot.cpp:1803
void setAntialiased(bool enabled)
Definition qcustomplot.cpp:1417
QCPLayerable(QCustomPlot *plot, QString targetLayer=QString(), QCPLayerable *parentLayerable=0)
Definition qcustomplot.cpp:1339
virtual void mouseMoveEvent(QMouseEvent *event, const QPointF &startPos)
Definition qcustomplot.cpp:1730
virtual void mouseReleaseEvent(QMouseEvent *event, const QPointF &startPos)
Definition qcustomplot.cpp:1748
QCPLayerable * parentLayerable() const
Definition qcustomplot.h:714
Q_SLOT bool setLayer(QCPLayer *layer)
Definition qcustomplot.cpp:1384
void layerChanged(QCPLayer *newLayer)
virtual void mousePressEvent(QMouseEvent *event, const QVariant &details)
Definition qcustomplot.cpp:1712
The abstract base class for all objects that form the layout system.
Definition qcustomplot.h:1185
void setMinimumMargins(const QMargins &margins)
Definition qcustomplot.cpp:3252
SizeConstraintRect
Definition qcustomplot.h:1216
@ scrInnerRect
Minimum/Maximum size constraints apply to inner rect.
Definition qcustomplot.h:1216
@ scrOuterRect
Minimum/Maximum size constraints apply to outer rect, thus include layout element margins.
Definition qcustomplot.h:1217
UpdatePhase
Definition qcustomplot.h:1202
@ upMargins
Phase in which the margins are calculated and set.
Definition qcustomplot.h:1203
@ upLayout
Final phase in which the layout system places the rects of the elements.
Definition qcustomplot.h:1204
@ upPreparation
Phase used for any type of preparation that needs to be done before margin calculation and layout.
Definition qcustomplot.h:1202
QRect rect() const
Definition qcustomplot.h:1226
QRect outerRect() const
Definition qcustomplot.h:1227
void setSizeConstraintRect(SizeConstraintRect constraintRect)
Definition qcustomplot.cpp:3347
void setOuterRect(const QRect &rect)
Definition qcustomplot.cpp:3214
QCPLayout * layout() const
Definition qcustomplot.h:1225
void setMinimumSize(const QSize &size)
Definition qcustomplot.cpp:3287
void setMaximumSize(const QSize &size)
Definition qcustomplot.cpp:3316
QCPLayoutElement(QCustomPlot *parentPlot=0)
Definition qcustomplot.cpp:3181
void setMargins(const QMargins &margins)
Definition qcustomplot.cpp:3234
A layout that arranges child elements in a grid.
Definition qcustomplot.h:1328
int rowCount() const
Definition qcustomplot.h:1358
int columnCount() const
Definition qcustomplot.h:1359
void setRowStretchFactors(const QList< double > &factors)
Definition qcustomplot.cpp:4293
void setColumnSpacing(int pixels)
Definition qcustomplot.cpp:4315
void setColumnStretchFactors(const QList< double > &factors)
Definition qcustomplot.cpp:4240
FillOrder
Definition qcustomplot.h:1349
@ foRowsFirst
Rows are filled first, and a new element is wrapped to the next column if the row count would exceed ...
Definition qcustomplot.h:1349
@ foColumnsFirst
Columns are filled first, and a new element is wrapped to the next row if the column count would exce...
Definition qcustomplot.h:1350
virtual int elementCount() const Q_DECL_OVERRIDE
Definition qcustomplot.h:1379
void setRowSpacing(int pixels)
Definition qcustomplot.cpp:4325
QCPLayoutGrid()
Definition qcustomplot.cpp:4079
void setWrap(int count)
Definition qcustomplot.cpp:4347
void setFillOrder(FillOrder order, bool rearrange=true)
Definition qcustomplot.cpp:4377
A layout that places child elements aligned to the border or arbitrarily positioned.
Definition qcustomplot.h:1419
QCPLayoutInset()
Definition qcustomplot.cpp:4862
InsetPlacement
Definition qcustomplot.h:1425
@ ipFree
The element may be positioned/sized arbitrarily, see setInsetRect.
Definition qcustomplot.h:1425
@ ipBorderAligned
The element is aligned to one of the layout sides, see setInsetAlignment.
Definition qcustomplot.h:1426
virtual void simplify() Q_DECL_OVERRIDE
Definition qcustomplot.h:1449
The abstract base class for layouts.
Definition qcustomplot.h:1288
void clear()
Definition qcustomplot.cpp:3750
QCPLayout()
Definition qcustomplot.cpp:3640
bool removeAt(int index)
Definition qcustomplot.cpp:3713
virtual void simplify()
Definition qcustomplot.cpp:3698
virtual void update(UpdatePhase phase) Q_DECL_OVERRIDE
Definition qcustomplot.cpp:3653
bool remove(QCPLayoutElement *element)
Definition qcustomplot.cpp:3734
virtual QCPLayoutElement * takeAt(int index)=0
virtual QCPLayoutElement * elementAt(int index) const =0
virtual QList< QCPLayoutElement * > elements(bool recursive) const Q_DECL_OVERRIDE
Definition qcustomplot.cpp:3671
virtual int elementCount() const =0
virtual bool take(QCPLayoutElement *element)=0
void sizeConstraintsChanged() const
Definition qcustomplot.cpp:3768
Manages a legend inside a QCustomPlot.
Definition qcustomplot.h:4808
QCPLegend()
Definition qcustomplot.cpp:18327
Q_SLOT void setSelectedParts(const SelectableParts &selectedParts)
Definition qcustomplot.cpp:18511
void setSelectedBorderPen(const QPen &pen)
Definition qcustomplot.cpp:18542
void setIconBorderPen(const QPen &pen)
Definition qcustomplot.cpp:18466
void setBrush(const QBrush &brush)
Definition qcustomplot.cpp:18390
SelectablePart
Definition qcustomplot.h:4832
@ spLegendBox
0x001 The legend box (frame)
Definition qcustomplot.h:4833
@ spNone
0x000 None
Definition qcustomplot.h:4832
@ spItems
0x002 Legend items individually (see selectedItems)
Definition qcustomplot.h:4834
void setIconTextPadding(int padding)
Definition qcustomplot.cpp:18455
void setSelectedTextColor(const QColor &color)
Definition qcustomplot.cpp:18592
void selectionChanged(QCPLegend::SelectableParts parts)
void setBorderPen(const QPen &pen)
Definition qcustomplot.cpp:18382
void setSelectedBrush(const QBrush &brush)
Definition qcustomplot.cpp:18563
void setIconSize(const QSize &size)
Definition qcustomplot.cpp:18437
Q_SLOT void setSelectableParts(const SelectableParts &selectableParts)
Definition qcustomplot.cpp:18481
void setFont(const QFont &font)
Definition qcustomplot.cpp:18404
void setSelectedFont(const QFont &font)
Definition qcustomplot.cpp:18575
void setSelectedIconBorderPen(const QPen &pen)
Definition qcustomplot.cpp:18552
void setTextColor(const QColor &color)
Definition qcustomplot.cpp:18423
Handles the different ending decorations for line-like items.
Definition qcustomplot.h:1475
EndingStyle
Definition qcustomplot.h:1489
@ esHalfBar
A bar perpendicular to the line, pointing out to only one side (to which side can be changed with set...
Definition qcustomplot.h:1497
@ esSkewedBar
A bar that is skewed (skew controllable via setLength).
Definition qcustomplot.h:1498
@ esBar
A bar perpendicular to the line.
Definition qcustomplot.h:1496
@ esDiamond
A filled diamond (45 degrees rotated square).
Definition qcustomplot.h:1495
@ esFlatArrow
A filled arrow head with a straight/flat back (a triangle).
Definition qcustomplot.h:1490
@ esLineArrow
A non-filled arrow head with open back.
Definition qcustomplot.h:1492
@ esSpikeArrow
A filled arrow head with an indented back.
Definition qcustomplot.h:1491
@ esNone
No ending decoration.
Definition qcustomplot.h:1489
@ esSquare
A filled square.
Definition qcustomplot.h:1494
@ esDisc
A filled circle.
Definition qcustomplot.h:1493
QCPLineEnding()
Definition qcustomplot.cpp:5164
A margin group allows synchronization of margin sides if working with multiple layout elements.
Definition qcustomplot.h:1154
QCPMarginGroup(QCustomPlot *parentPlot)
Definition qcustomplot.cpp:3014
QList< QCPLayoutElement * > elements(QCP::MarginSide side) const
Definition qcustomplot.h:1161
void clear(const QColor &color) Q_DECL_OVERRIDE
Definition qcustomplot.cpp:684
virtual QCPPainter * startPainting() Q_DECL_OVERRIDE
Definition qcustomplot.cpp:667
virtual void reallocateBuffer() Q_DECL_OVERRIDE
Definition qcustomplot.cpp:690
QCPPaintBufferPixmap(const QSize &size, double devicePixelRatio)
Definition qcustomplot.cpp:656
virtual void draw(QCPPainter *painter) const Q_DECL_OVERRIDE
Definition qcustomplot.cpp:675
QPainter subclass used internally.
Definition qcustomplot.h:462
void drawLine(const QLineF &line)
Definition qcustomplot.cpp:360
PainterMode
Definition qcustomplot.h:469
@ pmDefault
0x00 Default mode for painting on screen devices
Definition qcustomplot.h:469
@ pmNonCosmetic
0x04 Turns pen widths 0 to 1, i.e. disables cosmetic pens. (A cosmetic pen is always drawn with width...
Definition qcustomplot.h:472
@ pmNoCaching
0x02 Mode for all sorts of exports (e.g. PNG, PDF,...). For example, this prevents using cached pixma...
Definition qcustomplot.h:471
@ pmVectorized
0x01 Mode for vectorized painting (e.g. PDF export). For example, this prevents some antialiasing fix...
Definition qcustomplot.h:470
QCPPainter()
Definition qcustomplot.cpp:285
Defines an abstract interface for one-dimensional plottables.
Definition qcustomplot.h:3859
virtual QCPDataSelection selectTestRect(const QRectF &rect, bool onlySelectable) const =0
virtual double dataMainValue(int index) const =0
virtual int findEnd(double sortKey, bool expandedRange=true) const =0
virtual QPointF dataPixelPosition(int index) const =0
virtual double dataMainKey(int index) const =0
virtual double dataSortKey(int index) const =0
virtual int findBegin(double sortKey, bool expandedRange=true) const =0
virtual bool sortKeyIsMainKey() const =0
virtual int dataCount() const =0
virtual QCPRange dataValueRange(int index) const =0
virtual QSize minimumOuterSizeHint() const Q_DECL_OVERRIDE
Definition qcustomplot.cpp:18256
QCPPlottableLegendItem(QCPLegend *parent, QCPAbstractPlottable *plottable)
Definition qcustomplot.cpp:18180
Represents the range an axis is encompassing.
Definition qcustomplot.h:778
void expand(const QCPRange &otherRange)
Definition qcustomplot.cpp:1931
friend const QCPRange operator/(const QCPRange &range, double value)
Definition qcustomplot.h:882
friend const QCPRange operator*(const QCPRange &range, double value)
Definition qcustomplot.h:862
static const double maxRange
Definition qcustomplot.h:814
QCPRange & operator/=(const double &value)
Definition qcustomplot.h:791
double size() const
Definition qcustomplot.h:799
QCPRange & operator*=(const double &value)
Definition qcustomplot.h:790
friend const QCPRange operator-(const QCPRange &range, double value)
Definition qcustomplot.h:852
QCPRange & operator-=(const double &value)
Definition qcustomplot.h:789
static const double minRange
Definition qcustomplot.h:813
QCPRange()
Definition qcustomplot.cpp:1899
bool contains(double value) const
Definition qcustomplot.h:809
friend const QCPRange operator+(const QCPRange &, double)
Definition qcustomplot.h:832
double center() const
Definition qcustomplot.h:800
void normalize()
Definition qcustomplot.h:801
QCPRange & operator+=(const double &value)
Definition qcustomplot.h:788
Represents the visual appearance of scatter points.
Definition qcustomplot.h:2297
bool isPenDefined() const
Definition qcustomplot.h:2374
bool isNone() const
Definition qcustomplot.h:2373
QCPScatterStyle()
Definition qcustomplot.cpp:9920
ScatterProperty
Definition qcustomplot.h:2308
@ spShape
0x08 The shape property, see setShape
Definition qcustomplot.h:2312
@ spSize
0x04 The size property, see setSize
Definition qcustomplot.h:2311
@ spNone
0x00 None
Definition qcustomplot.h:2308
@ spPen
0x01 The pen property, see setPen
Definition qcustomplot.h:2309
@ spBrush
0x02 The brush property, see setBrush
Definition qcustomplot.h:2310
@ spAll
0xFF All properties
Definition qcustomplot.h:2313
ScatterShape
Definition qcustomplot.h:2326
@ ssDot
\enumimage{ssDot.png} a single pixel (use ssDisc or ssCircle if you want a round shape with a certain...
Definition qcustomplot.h:2327
@ ssCustom
custom painter operations are performed per scatter (As QPainterPath, see setCustomPath)
Definition qcustomplot.h:2343
@ ssSquare
\enumimage{ssSquare.png} a square
Definition qcustomplot.h:2332
@ ssDisc
\enumimage{ssDisc.png} a circle which is filled with the pen's color (not the brush as with ssCircle)
Definition qcustomplot.h:2331
@ ssPlus
\enumimage{ssPlus.png} a plus
Definition qcustomplot.h:2329
@ ssDiamond
\enumimage{ssDiamond.png} a diamond
Definition qcustomplot.h:2333
@ ssCrossCircle
\enumimage{ssCrossCircle.png} a circle with a cross inside
Definition qcustomplot.h:2339
@ ssPlusSquare
\enumimage{ssPlusSquare.png} a square with a plus inside
Definition qcustomplot.h:2338
@ ssStar
\enumimage{ssStar.png} a star with eight arms, i.e. a combination of cross and plus
Definition qcustomplot.h:2334
@ ssTriangleInverted
\enumimage{ssTriangleInverted.png} an equilateral triangle, standing on corner
Definition qcustomplot.h:2336
@ ssPlusCircle
\enumimage{ssPlusCircle.png} a circle with a plus inside
Definition qcustomplot.h:2340
@ ssCrossSquare
\enumimage{ssCrossSquare.png} a square with a cross inside
Definition qcustomplot.h:2337
@ ssTriangle
\enumimage{ssTriangle.png} an equilateral triangle, standing on baseline
Definition qcustomplot.h:2335
@ ssCircle
\enumimage{ssCircle.png} a circle
Definition qcustomplot.h:2330
@ ssPixmap
a custom pixmap specified by setPixmap, centered on the data point coordinates
Definition qcustomplot.h:2342
@ ssCross
\enumimage{ssCross.png} a cross
Definition qcustomplot.h:2328
@ ssNone
no scatter symbols are drawn (e.g. in QCPGraph, data only represented with lines)
Definition qcustomplot.h:2326
@ ssPeace
\enumimage{ssPeace.png} a circle, with one vertical and two downward diagonal lines
Definition qcustomplot.h:2341
A selection decorator which draws brackets around each selected data segment.
Definition qcustomplot.h:4525
BracketStyle
Definition qcustomplot.h:4535
@ bsUserStyle
Start custom bracket styles at this index when subclassing and reimplementing drawBracket.
Definition qcustomplot.h:4539
@ bsEllipse
An ellipse is drawn. The size of the ellipse is given by the bracket width/height properties.
Definition qcustomplot.h:4537
@ bsPlus
A plus is drawn.
Definition qcustomplot.h:4538
@ bsSquareBracket
A square bracket is drawn.
Definition qcustomplot.h:4535
@ bsHalfEllipse
A half ellipse is drawn. The size of the ellipse is given by the bracket width/height properties.
Definition qcustomplot.h:4536
QCPSelectionDecoratorBracket()
Definition qcustomplot.cpp:16426
Controls how a plottable's data selection is drawn.
Definition qcustomplot.h:3249
QCPScatterStyle getFinalScatterStyle(const QCPScatterStyle &unselectedStyle) const
Definition qcustomplot.cpp:10424
void applyBrush(QCPPainter *painter) const
Definition qcustomplot.cpp:10411
virtual void copyFrom(const QCPSelectionDecorator *other)
Definition qcustomplot.cpp:10442
virtual void drawDecoration(QCPPainter *painter, QCPDataSelection selection)
Definition qcustomplot.cpp:10457
void applyPen(QCPPainter *painter) const
Definition qcustomplot.cpp:10401
void setUsedScatterProperties(const QCPScatterStyle::ScatterProperties &properties)
Definition qcustomplot.cpp:10391
QCPSelectionDecorator()
Definition qcustomplot.cpp:10342
void setBrush(const QBrush &brush)
Definition qcustomplot.cpp:10366
void setScatterStyle(const QCPScatterStyle &scatterStyle, QCPScatterStyle::ScatterProperties usedProperties=QCPScatterStyle::spPen)
Definition qcustomplot.cpp:10378
void setPen(const QPen &pen)
Definition qcustomplot.cpp:10358
Provides rect/rubber-band data selection and range zoom interaction.
Definition qcustomplot.h:1100
void accepted(const QRect &rect, QMouseEvent *event)
void changed(const QRect &rect, QMouseEvent *event)
QCPRange range(const QCPAxis *axis) const
Definition qcustomplot.cpp:2836
void started(QMouseEvent *event)
bool isActive() const
Definition qcustomplot.h:1111
QCPSelectionRect(QCustomPlot *parentPlot)
Definition qcustomplot.cpp:2819
void canceled(const QRect &rect, QInputEvent *event)
double mainValue() const
Definition qcustomplot.h:5585
double sortKey() const
Definition qcustomplot.h:5580
QCPRange valueRange() const
Definition qcustomplot.h:5587
double mainKey() const
Definition qcustomplot.h:5584
static QCPStatisticalBoxData fromSortKey(double sortKey)
Definition qcustomplot.h:5581
QCPStatisticalBoxData()
Definition qcustomplot.cpp:24435
static bool sortKeyIsMainKey()
Definition qcustomplot.h:5582
void setWidth(double width)
Definition qcustomplot.cpp:24590
void setWhiskerPen(const QPen &pen)
Definition qcustomplot.cpp:24619
void setWhiskerAntialiased(bool enabled)
Definition qcustomplot.cpp:24644
void setMedianPen(const QPen &pen)
Definition qcustomplot.cpp:24652
QSharedPointer< QCPStatisticalBoxDataContainer > data() const
Definition qcustomplot.h:5629
QCPStatisticalBox(QCPAxis *keyAxis, QCPAxis *valueAxis)
Definition qcustomplot.cpp:24534
void setWhiskerBarPen(const QPen &pen)
Definition qcustomplot.cpp:24633
void setOutlierStyle(const QCPScatterStyle &style)
Definition qcustomplot.cpp:24663
void setWhiskerWidth(double width)
Definition qcustomplot.cpp:24603
void setFont(const QFont &font)
Definition qcustomplot.cpp:19076
void setSelectedFont(const QFont &font)
Definition qcustomplot.cpp:19096
virtual double selectTest(const QPointF &pos, bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE
Definition qcustomplot.cpp:19212
virtual void mouseDoubleClickEvent(QMouseEvent *event, const QVariant &details) Q_DECL_OVERRIDE
Definition qcustomplot.cpp:19253
Q_SLOT void setSelectable(bool selectable)
Definition qcustomplot.cpp:19117
virtual QSize minimumOuterSizeHint() const Q_DECL_OVERRIDE
Definition qcustomplot.cpp:19157
void selectionChanged(bool selected)
void setTextColor(const QColor &color)
Definition qcustomplot.cpp:19086
void doubleClicked(QMouseEvent *event)
void setTextFlags(int flags)
Definition qcustomplot.cpp:19066
Q_SLOT void setSelected(bool selected)
Definition qcustomplot.cpp:19133
void setSelectedTextColor(const QColor &color)
Definition qcustomplot.cpp:19106
void setText(const QString &text)
Definition qcustomplot.cpp:19041
virtual void mouseReleaseEvent(QMouseEvent *event, const QPointF &startPos) Q_DECL_OVERRIDE
Definition qcustomplot.cpp:19242
void clicked(QMouseEvent *event)
virtual void mousePressEvent(QMouseEvent *event, const QVariant &details) Q_DECL_OVERRIDE
Definition qcustomplot.cpp:19230
QCPTextElement(QCustomPlot *parentPlot)
Definition qcustomplot.cpp:18925
virtual QSize maximumOuterSizeHint() const Q_DECL_OVERRIDE
Definition qcustomplot.cpp:19167
Represents two doubles as a mathematical 2D vector.
Definition qcustomplot.h:388
QCPVector2D()
Definition qcustomplot.cpp:111
QCPVector2D perpendicular() const
Definition qcustomplot.h:414
double length() const
Definition qcustomplot.h:406
double dot(const QCPVector2D &vec) const
Definition qcustomplot.h:415
double lengthSquared() const
Definition qcustomplot.h:407
void setX(double x)
Definition qcustomplot.h:402
QPointF toPointF() const
Definition qcustomplot.h:409
bool isNull() const
Definition qcustomplot.h:411
void setY(double y)
Definition qcustomplot.h:403
QPoint toPoint() const
Definition qcustomplot.h:408
The central class of the library. This is the QWidget which displays the plot and interacts with the ...
Definition qcustomplot.h:3591
void legendDoubleClick(QCPLegend *legend, QCPAbstractLegendItem *item, QMouseEvent *event)
void setBackground(const QPixmap &pm)
Definition qcustomplot.cpp:13431
QCPAbstractPlottable * plottable(int index)
Definition qcustomplot.cpp:13504
void setBackgroundScaled(bool scaled)
Definition qcustomplot.cpp:13480
void setViewport(const QRect &rect)
Definition qcustomplot.cpp:13382
QCustomPlot(QWidget *parent=0)
Definition qcustomplot.cpp:12859
RefreshPriority
Definition qcustomplot.h:3621
@ rpQueuedReplot
Queues the entire replot for the next event loop iteration. This way multiple redundant replots can b...
Definition qcustomplot.h:3624
@ rpRefreshHint
Whether to use immediate or queued refresh depends on whether the plotting hint QCP::phImmediateRefre...
Definition qcustomplot.h:3623
@ rpImmediateRefresh
Replots immediately and repaints the widget immediately by calling QWidget::repaint() after the replo...
Definition qcustomplot.h:3621
@ rpQueuedRefresh
Replots immediately, but queues the widget repaint, by calling QWidget::update() after the replot....
Definition qcustomplot.h:3622
void setBackgroundScaledMode(Qt::AspectRatioMode mode)
Definition qcustomplot.cpp:13491
void setSelectionTolerance(int pixels)
Definition qcustomplot.cpp:13161
void selectionChangedByUser()
void axisDoubleClick(QCPAxis *axis, QCPAxis::SelectablePart part, QMouseEvent *event)
QCPGraph * graph(int index) const
Definition qcustomplot.cpp:13669
QCPLegend * legend
Definition qcustomplot.h:3740
void mouseMove(QMouseEvent *event)
LayerInsertMode
Definition qcustomplot.h:3611
@ limAbove
Layer is inserted above other layer.
Definition qcustomplot.h:3612
@ limBelow
Layer is inserted below other layer.
Definition qcustomplot.h:3611
void setNoAntialiasingOnDrag(bool enabled)
Definition qcustomplot.cpp:13175
void legendClick(QCPLegend *legend, QCPAbstractLegendItem *item, QMouseEvent *event)
void setOpenGl(bool enabled, int multisampling=16)
Definition qcustomplot.cpp:13328
void plottableDoubleClick(QCPAbstractPlottable *plottable, int dataIndex, QMouseEvent *event)
void setMultiSelectModifier(Qt::KeyboardModifier modifier)
Definition qcustomplot.cpp:13217
QCPAxis * xAxis
Definition qcustomplot.h:3739
void mouseDoubleClick(QMouseEvent *event)
void axisClick(QCPAxis *axis, QCPAxis::SelectablePart part, QMouseEvent *event)
QCPAbstractItem * item(int index) const
Definition qcustomplot.cpp:13809
void mouseWheel(QWheelEvent *event)
void itemDoubleClick(QCPAbstractItem *item, QMouseEvent *event)
void mouseRelease(QMouseEvent *event)
void mousePress(QMouseEvent *event)
bool hasInvalidatedPaintBuffers()
Definition qcustomplot.cpp:15162
QCPSelectionRect * selectionRect() const
Definition qcustomplot.h:3647
void setAutoAddPlottableToLegend(bool on)
Definition qcustomplot.cpp:13069
QCPAxis * xAxis2
Definition qcustomplot.h:3739
void itemClick(QCPAbstractItem *item, QMouseEvent *event)
QCPAxis * yAxis2
Definition qcustomplot.h:3739
QCPLayoutGrid * plotLayout() const
Definition qcustomplot.h:3637
void plottableClick(QCPAbstractPlottable *plottable, int dataIndex, QMouseEvent *event)
QCPAxis * yAxis
Definition qcustomplot.h:3739
Definition qcustomplot.h:144
ExportPen
Definition qcustomplot.h:180
@ epAllowCosmetic
Cosmetic pens are exported normally (e.g. in PDF exports, cosmetic pens always appear as 1 pixel on s...
Definition qcustomplot.h:181
@ epNoCosmetic
Cosmetic pens are converted to pens with pixel width 1 when exporting.
Definition qcustomplot.h:180
Interaction
Definition qcustomplot.h:256
@ iSelectLegend
0x020 Legends are selectable (or their child items, see QCPLegend::setSelectableParts)
Definition qcustomplot.h:261
@ iRangeDrag
0x001 Axis ranges are draggable (see QCPAxisRect::setRangeDrag, QCPAxisRect::setRangeDragAxes)
Definition qcustomplot.h:256
@ iSelectPlottables
0x008 Plottables are selectable (e.g. graphs, curves, bars,... see QCPAbstractPlottable)
Definition qcustomplot.h:259
@ iRangeZoom
0x002 Axis ranges are zoomable with the mouse wheel (see QCPAxisRect::setRangeZoom,...
Definition qcustomplot.h:257
@ iSelectAxes
0x010 Axes are selectable (or parts of them, see QCPAxis::setSelectableParts)
Definition qcustomplot.h:260
@ iSelectItems
0x040 Items are selectable (Rectangles, Arrows, Textitems, etc. see QCPAbstractItem)
Definition qcustomplot.h:262
@ iMultiSelect
0x004 The user can select multiple objects by holding the modifier set by QCustomPlot::setMultiSelect...
Definition qcustomplot.h:258
@ iSelectOther
0x080 All other objects are selectable (e.g. your own derived layerables, other layout elements,...
Definition qcustomplot.h:263
PlottingHint
Definition qcustomplot.h:240
@ phImmediateRefresh
Definition qcustomplot.h:243
@ phCacheLabels
0x004 axis (tick) labels will be cached as pixmaps, increasing replot performance.
Definition qcustomplot.h:245
@ phFastPolylines
Definition qcustomplot.h:241
@ phNone
0x000 No hints are set
Definition qcustomplot.h:240
ResolutionUnit
Definition qcustomplot.h:170
@ ruDotsPerCentimeter
Resolution is given in dots per centimeter (dpcm).
Definition qcustomplot.h:171
@ ruDotsPerMeter
Resolution is given in dots per meter (dpm).
Definition qcustomplot.h:170
@ ruDotsPerInch
Resolution is given in dots per inch (DPI/PPI).
Definition qcustomplot.h:172
MarginSide
Definition qcustomplot.h:201
@ msAll
0xFF all margins
Definition qcustomplot.h:205
@ msBottom
0x08 bottom margin
Definition qcustomplot.h:204
@ msTop
0x04 top margin
Definition qcustomplot.h:203
@ msNone
0x00 no margin
Definition qcustomplot.h:206
@ msRight
0x02 right margin
Definition qcustomplot.h:202
@ msLeft
0x01 left margin
Definition qcustomplot.h:201
SelectionType
Definition qcustomplot.h:296
@ stMultipleDataRanges
Any combination of data points/ranges can be selected.
Definition qcustomplot.h:300
@ stDataRange
Multiple contiguous data points (a data range) can be selected.
Definition qcustomplot.h:299
@ stNone
The plottable is not selectable.
Definition qcustomplot.h:296
@ stSingleData
One individual data point can be selected at a time.
Definition qcustomplot.h:298
@ stWhole
Selection behaves like stMultipleDataRanges, but if there are any data points selected,...
Definition qcustomplot.h:297
SelectionRectMode
Definition qcustomplot.h:272
@ srmCustom
When dragging the mouse, a selection rect becomes active. It is the programmer's responsibility to co...
Definition qcustomplot.h:275
@ srmSelect
When dragging the mouse, a selection rect becomes active. Upon releasing, plottable data points that ...
Definition qcustomplot.h:274
@ srmZoom
When dragging the mouse, a selection rect becomes active. Upon releasing, the axes that are currently...
Definition qcustomplot.h:273
@ srmNone
The selection rect is disabled, and all mouse events are forwarded to the underlying objects,...
Definition qcustomplot.h:272
AntialiasedElement
Definition qcustomplot.h:219
@ aeLegendItems
0x0010 Legend items
Definition qcustomplot.h:223
@ aeZeroLine
0x0200 Zero-lines, see QCPGrid::setZeroLinePen
Definition qcustomplot.h:228
@ aePlottables
0x0020 Main lines of plottables
Definition qcustomplot.h:224
@ aeGrid
0x0002 Grid lines
Definition qcustomplot.h:220
@ aeOther
0x8000 Other elements that don't fit into any of the existing categories
Definition qcustomplot.h:229
@ aeFills
0x0100 Borders of fills (e.g. under or between graphs)
Definition qcustomplot.h:227
@ aeLegend
0x0008 Legend box
Definition qcustomplot.h:222
@ aeAll
0xFFFF All elements
Definition qcustomplot.h:230
@ aeNone
0x0000 No elements
Definition qcustomplot.h:231
@ aeSubGrid
0x0004 Sub grid lines
Definition qcustomplot.h:221
@ aeScatters
0x0080 Scatter symbols of plottables (excluding scatter symbols of type ssPixmap)
Definition qcustomplot.h:226
@ aeAxes
0x0001 Axis base line and tick marks
Definition qcustomplot.h:219
@ aeItems
0x0040 Main lines of items
Definition qcustomplot.h:225
SignDomain
Definition qcustomplot.h:191
@ sdNegative
The negative sign domain, i.e. numbers smaller than zero.
Definition qcustomplot.h:191
@ sdPositive
The positive sign domain, i.e. numbers greater than zero.
Definition qcustomplot.h:193
@ sdBoth
Both sign domains, including zero, i.e. all numbers.
Definition qcustomplot.h:192
Definition qcustomplot.h:2266
Definition qcustomplot.h:2271