33 #include <QPaintEvent>
34 #include <QMouseEvent>
48 #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
49 # include <qnumeric.h>
51 # include <QPrintEngine>
54 # include <QtPrintSupport/QtPrintSupport>
82 #if defined(QCUSTOMPLOT_COMPILE_LIBRARY)
83 # define QCP_LIB_DECL Q_DECL_EXPORT
84 #elif defined(QCUSTOMPLOT_USE_LIBRARY)
85 # define QCP_LIB_DECL Q_DECL_IMPORT
174 return qIsNaN(value) || qIsInf(value);
199 case QCP::msTop: margins.setTop(value);
break;
201 case QCP::msAll: margins = QMargins(value, value, value, value);
break;
228 Q_DECLARE_OPERATORS_FOR_FLAGS(QCP::AntialiasedElements)
229 Q_DECLARE_OPERATORS_FOR_FLAGS(QCP::PlottingHints)
230 Q_DECLARE_OPERATORS_FOR_FLAGS(QCP::MarginSides)
231 Q_DECLARE_OPERATORS_FOR_FLAGS(QCP::Interactions)
269 QCPScatterStyle(ScatterShape shape,
const QColor &color,
const QColor &fill,
double size);
270 QCPScatterStyle(ScatterShape shape,
const QPen &pen,
const QBrush &brush,
double size);
272 QCPScatterStyle(
const QPainterPath &customPath,
const QPen &pen,
const QBrush &brush=Qt::NoBrush,
double size=6);
275 double size()
const {
return mSize; }
277 QPen
pen()
const {
return mPen; }
278 QBrush
brush()
const {
return mBrush; }
279 QPixmap
pixmap()
const {
return mPixmap; }
283 void setSize(
double size);
284 void setShape(ScatterShape shape);
285 void setPen(
const QPen &pen);
286 void setBrush(
const QBrush &brush);
287 void setPixmap(
const QPixmap &pixmap);
288 void setCustomPath(
const QPainterPath &customPath);
291 bool isNone()
const {
return mShape == ssNone; }
293 void applyTo(
QCPPainter *painter,
const QPen &defaultPen)
const;
294 void drawShape(
QCPPainter *painter, QPointF pos)
const;
295 void drawShape(
QCPPainter *painter,
double x,
double y)
const;
323 ,pmNonCosmetic = 0x04
325 Q_FLAGS(PainterMode PainterModes)
326 Q_DECLARE_FLAGS(PainterModes, PainterMode)
329 QCPPainter(QPaintDevice *device);
333 bool antialiasing()
const {
return testRenderHint(QPainter::Antialiasing); }
334 PainterModes
modes()
const {
return mModes; }
337 void setAntialiasing(
bool enabled);
338 void setMode(PainterMode mode,
bool enabled=
true);
339 void setModes(PainterModes modes);
342 bool begin(QPaintDevice *device);
343 void setPen(
const QPen &pen);
344 void setPen(
const QColor &color);
345 void setPen(Qt::PenStyle penStyle);
346 void drawLine(
const QLineF &line);
352 void makeNonCosmetic();
362 Q_DECLARE_OPERATORS_FOR_FLAGS(QCPPainter::PainterModes)
369 Q_PROPERTY(
QCustomPlot* parentPlot READ parentPlot)
370 Q_PROPERTY(QString name READ name)
371 Q_PROPERTY(
int index READ index)
372 Q_PROPERTY(QList<QCPLayerable*> children READ children)
373 Q_PROPERTY(
bool visible READ visible WRITE setVisible)
381 QString
name()
const {
return mName; }
382 int index()
const {
return mIndex; }
383 QList<QCPLayerable*>
children()
const {
return mChildren; }
387 void setVisible(
bool visible);
412 Q_PROPERTY(
bool visible READ visible WRITE setVisible)
413 Q_PROPERTY(QCustomPlot* parentPlot READ parentPlot)
414 Q_PROPERTY(QCPLayerable* parentLayerable READ parentLayerable)
415 Q_PROPERTY(
QCPLayer* layer READ layer WRITE setLayer NOTIFY layerChanged)
416 Q_PROPERTY(
bool antialiased READ antialiased WRITE setAntialiased)
419 QCPLayerable(QCustomPlot *plot, QString targetLayer=QString(), QCPLayerable *parentLayerable=0);
430 void setVisible(
bool on);
431 Q_SLOT
bool setLayer(
QCPLayer *layer);
432 bool setLayer(
const QString &layerName);
433 void setAntialiased(
bool enabled);
436 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
439 bool realVisibility()
const;
442 void layerChanged(
QCPLayer *newLayer);
453 virtual void parentPlotInitialized(QCustomPlot *parentPlot);
455 virtual QRect clipRect()
const;
456 virtual void applyDefaultAntialiasingHint(
QCPPainter *painter)
const = 0;
459 virtual void selectEvent(QMouseEvent *event,
bool additive,
const QVariant &details,
bool *selectionStateChanged);
460 virtual void deselectEvent(
bool *selectionStateChanged);
463 void initializeParentPlot(QCustomPlot *parentPlot);
464 void setParentLayerable(QCPLayerable* parentLayerable);
465 bool moveToLayer(
QCPLayer *layer,
bool prepend);
469 Q_DISABLE_COPY(QCPLayerable)
471 friend class QCustomPlot;
482 QCPRange(
double lower,
double upper);
485 bool operator!=(
const QCPRange& other)
const {
return !(*
this == other); }
487 QCPRange &
operator+=(
const double& value) { lower+=value; upper+=value;
return *
this; }
488 QCPRange &
operator-=(
const double& value) { lower-=value; upper-=value;
return *
this; }
489 QCPRange &
operator*=(
const double& value) { lower*=value; upper*=value;
return *
this; }
490 QCPRange &
operator/=(
const double& value) { lower/=value; upper/=value;
return *
this; }
491 friend inline const QCPRange
operator+(
const QCPRange&,
double);
492 friend inline const QCPRange
operator+(
double,
const QCPRange&);
493 friend inline const QCPRange
operator-(
const QCPRange& range,
double value);
494 friend inline const QCPRange
operator*(
const QCPRange& range,
double value);
495 friend inline const QCPRange
operator*(
double value,
const QCPRange& range);
496 friend inline const QCPRange
operator/(
const QCPRange& range,
double value);
499 double center()
const;
501 void expand(
const QCPRange &otherRange);
502 QCPRange expanded(
const QCPRange &otherRange)
const;
503 QCPRange sanitizedForLogScale()
const;
504 QCPRange sanitizedForLinScale()
const;
505 bool contains(
double value)
const;
507 static bool validRange(
double lower,
double upper);
508 static bool validRange(
const QCPRange &range);
609 bool isEmpty()
const;
615 QHash<QCP::MarginSide, QList<QCPLayoutElement*> >
mChildren;
633 Q_PROPERTY(
QCPLayout* layout READ layout)
634 Q_PROPERTY(QRect rect READ rect)
635 Q_PROPERTY(QRect outerRect READ outerRect WRITE setOuterRect)
636 Q_PROPERTY(QMargins margins READ margins WRITE setMargins)
637 Q_PROPERTY(QMargins minimumMargins READ minimumMargins WRITE setMinimumMargins)
638 Q_PROPERTY(QSize minimumSize READ minimumSize WRITE setMinimumSize)
639 Q_PROPERTY(QSize maximumSize READ maximumSize WRITE setMaximumSize)
652 explicit QCPLayoutElement(QCustomPlot *parentPlot=0);
653 virtual ~QCPLayoutElement();
657 QRect
rect()
const {
return mRect; }
665 QHash<QCP::MarginSide, QCPMarginGroup*>
marginGroups()
const {
return mMarginGroups; }
668 void setOuterRect(
const QRect &rect);
669 void setMargins(
const QMargins &margins);
670 void setMinimumMargins(
const QMargins &margins);
671 void setAutoMargins(QCP::MarginSides sides);
672 void setMinimumSize(
const QSize &size);
673 void setMinimumSize(
int width,
int height);
674 void setMaximumSize(
const QSize &size);
675 void setMaximumSize(
int width,
int height);
676 void setMarginGroup(QCP::MarginSides sides,
QCPMarginGroup *group);
679 virtual void update(UpdatePhase phase);
680 virtual QSize minimumSizeHint()
const;
681 virtual QSize maximumSizeHint()
const;
682 virtual QList<QCPLayoutElement*> elements(
bool recursive)
const;
685 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
703 virtual void wheelEvent(QWheelEvent *event) {Q_UNUSED(event)}
708 virtual void parentPlotInitialized(QCustomPlot *parentPlot);
711 Q_DISABLE_COPY(QCPLayoutElement)
713 friend class QCustomPlot;
723 explicit QCPLayout();
727 virtual QList<QCPLayoutElement*> elements(
bool recursive)
const;
730 virtual int elementCount()
const = 0;
731 virtual QCPLayoutElement* elementAt(
int index)
const = 0;
732 virtual QCPLayoutElement* takeAt(
int index) = 0;
733 virtual bool take(QCPLayoutElement* element) = 0;
734 virtual void simplify();
737 bool removeAt(
int index);
738 bool remove(QCPLayoutElement* element);
743 virtual void updateLayout();
746 void sizeConstraintsChanged()
const;
747 void adoptElement(QCPLayoutElement *el);
748 void releaseElement(QCPLayoutElement *el);
749 QVector<int> getSectionSizes(QVector<int> maxSizes, QVector<int> minSizes, QVector<double> stretchFactors,
int totalSize)
const;
752 Q_DISABLE_COPY(QCPLayout)
753 friend class QCPLayoutElement;
761 Q_PROPERTY(
int rowCount READ rowCount)
762 Q_PROPERTY(
int columnCount READ columnCount)
763 Q_PROPERTY(QList<double> columnStretchFactors READ columnStretchFactors WRITE setColumnStretchFactors)
764 Q_PROPERTY(QList<double> rowStretchFactors READ rowStretchFactors WRITE setRowStretchFactors)
765 Q_PROPERTY(
int columnSpacing READ columnSpacing WRITE setColumnSpacing)
766 Q_PROPERTY(
int rowSpacing READ rowSpacing WRITE setRowSpacing)
773 int rowCount()
const;
774 int columnCount()
const;
781 void setColumnStretchFactor(
int column,
double factor);
782 void setColumnStretchFactors(
const QList<double> &factors);
783 void setRowStretchFactor(
int row,
double factor);
784 void setRowStretchFactors(
const QList<double> &factors);
785 void setColumnSpacing(
int pixels);
786 void setRowSpacing(
int pixels);
789 virtual void updateLayout();
790 virtual int elementCount()
const;
791 virtual QCPLayoutElement* elementAt(
int index)
const;
792 virtual QCPLayoutElement* takeAt(
int index);
793 virtual bool take(QCPLayoutElement* element);
794 virtual QList<QCPLayoutElement*> elements(
bool recursive)
const;
795 virtual void simplify();
796 virtual QSize minimumSizeHint()
const;
797 virtual QSize maximumSizeHint()
const;
800 QCPLayoutElement *element(
int row,
int column)
const;
801 bool addElement(
int row,
int column, QCPLayoutElement *element);
802 bool hasElement(
int row,
int column);
803 void expandTo(
int newRowCount,
int newColumnCount);
804 void insertRow(
int newIndex);
805 void insertColumn(
int newIndex);
815 void getMinimumRowColSizes(QVector<int> *minColWidths, QVector<int> *minRowHeights)
const;
816 void getMaximumRowColSizes(QVector<int> *maxColWidths, QVector<int> *maxRowHeights)
const;
838 InsetPlacement insetPlacement(
int index)
const;
839 Qt::Alignment insetAlignment(
int index)
const;
840 QRectF insetRect(
int index)
const;
843 void setInsetPlacement(
int index, InsetPlacement placement);
844 void setInsetAlignment(
int index, Qt::Alignment alignment);
845 void setInsetRect(
int index,
const QRectF &rect);
850 virtual QCPLayoutElement*
elementAt(
int index)
const;
851 virtual QCPLayoutElement*
takeAt(
int index);
852 virtual bool take(QCPLayoutElement* element);
854 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
857 void addElement(QCPLayoutElement *element, Qt::Alignment alignment);
858 void addElement(QCPLayoutElement *element,
const QRectF &rect);
901 QCPLineEnding(EndingStyle style,
double width=8,
double length=10,
bool inverted=
false);
905 double width()
const {
return mWidth; }
906 double length()
const {
return mLength; }
910 void setStyle(EndingStyle style);
911 void setWidth(
double width);
912 void setLength(
double length);
913 void setInverted(
bool inverted);
916 double boundingDistance()
const;
917 double realLength()
const;
918 void draw(
QCPPainter *painter,
const QVector2D &pos,
const QVector2D &dir)
const;
919 void draw(
QCPPainter *painter,
const QVector2D &pos,
double angle)
const;
934 Q_PROPERTY(
bool subGridVisible READ subGridVisible WRITE setSubGridVisible)
935 Q_PROPERTY(
bool antialiasedSubGrid READ antialiasedSubGrid WRITE setAntialiasedSubGrid)
936 Q_PROPERTY(
bool antialiasedZeroLine READ antialiasedZeroLine WRITE setAntialiasedZeroLine)
937 Q_PROPERTY(QPen pen READ pen WRITE setPen)
938 Q_PROPERTY(QPen subGridPen READ subGridPen WRITE setSubGridPen)
939 Q_PROPERTY(QPen zeroLinePen READ zeroLinePen WRITE setZeroLinePen)
948 QPen
pen()
const {
return mPen; }
953 void setSubGridVisible(
bool visible);
954 void setAntialiasedSubGrid(
bool enabled);
955 void setAntialiasedZeroLine(
bool enabled);
956 void setPen(
const QPen &pen);
957 void setSubGridPen(
const QPen &pen);
958 void setZeroLinePen(
const QPen &pen);
973 void drawGridLines(
QCPPainter *painter)
const;
974 void drawSubGridLines(
QCPPainter *painter)
const;
984 Q_PROPERTY(
AxisType axisType READ axisType)
986 Q_PROPERTY(
ScaleType scaleType READ scaleType WRITE setScaleType NOTIFY scaleTypeChanged)
987 Q_PROPERTY(
double scaleLogBase READ scaleLogBase WRITE setScaleLogBase)
988 Q_PROPERTY(
QCPRange range READ range WRITE setRange NOTIFY rangeChanged)
989 Q_PROPERTY(
bool rangeReversed READ rangeReversed WRITE setRangeReversed)
990 Q_PROPERTY(
bool autoTicks READ autoTicks WRITE setAutoTicks)
991 Q_PROPERTY(
int autoTickCount READ autoTickCount WRITE setAutoTickCount)
992 Q_PROPERTY(
bool autoTickLabels READ autoTickLabels WRITE setAutoTickLabels)
993 Q_PROPERTY(
bool autoTickStep READ autoTickStep WRITE setAutoTickStep)
994 Q_PROPERTY(
bool autoSubTicks READ autoSubTicks WRITE setAutoSubTicks)
995 Q_PROPERTY(
bool ticks READ ticks WRITE setTicks)
996 Q_PROPERTY(
bool tickLabels READ tickLabels WRITE setTickLabels)
997 Q_PROPERTY(
int tickLabelPadding READ tickLabelPadding WRITE setTickLabelPadding)
998 Q_PROPERTY(
LabelType tickLabelType READ tickLabelType WRITE setTickLabelType)
999 Q_PROPERTY(QFont tickLabelFont READ tickLabelFont WRITE setTickLabelFont)
1000 Q_PROPERTY(QColor tickLabelColor READ tickLabelColor WRITE setTickLabelColor)
1001 Q_PROPERTY(
double tickLabelRotation READ tickLabelRotation WRITE setTickLabelRotation)
1002 Q_PROPERTY(
LabelSide tickLabelSide READ tickLabelSide WRITE setTickLabelSide)
1003 Q_PROPERTY(QString dateTimeFormat READ dateTimeFormat WRITE setDateTimeFormat)
1004 Q_PROPERTY(Qt::TimeSpec dateTimeSpec READ dateTimeSpec WRITE setDateTimeSpec)
1005 Q_PROPERTY(QString numberFormat READ numberFormat WRITE setNumberFormat)
1006 Q_PROPERTY(
int numberPrecision READ numberPrecision WRITE setNumberPrecision)
1007 Q_PROPERTY(
double tickStep READ tickStep WRITE setTickStep)
1008 Q_PROPERTY(QVector<double> tickVector READ tickVector WRITE setTickVector)
1009 Q_PROPERTY(QVector<QString> tickVectorLabels READ tickVectorLabels WRITE setTickVectorLabels)
1010 Q_PROPERTY(
int tickLengthIn READ tickLengthIn WRITE setTickLengthIn)
1011 Q_PROPERTY(
int tickLengthOut READ tickLengthOut WRITE setTickLengthOut)
1012 Q_PROPERTY(
int subTickCount READ subTickCount WRITE setSubTickCount)
1013 Q_PROPERTY(
int subTickLengthIn READ subTickLengthIn WRITE setSubTickLengthIn)
1014 Q_PROPERTY(
int subTickLengthOut READ subTickLengthOut WRITE setSubTickLengthOut)
1015 Q_PROPERTY(QPen basePen READ basePen WRITE setBasePen)
1016 Q_PROPERTY(QPen tickPen READ tickPen WRITE setTickPen)
1017 Q_PROPERTY(QPen subTickPen READ subTickPen WRITE setSubTickPen)
1018 Q_PROPERTY(QFont labelFont READ labelFont WRITE setLabelFont)
1019 Q_PROPERTY(QColor labelColor READ labelColor WRITE setLabelColor)
1020 Q_PROPERTY(QString label READ label WRITE setLabel)
1021 Q_PROPERTY(
int labelPadding READ labelPadding WRITE setLabelPadding)
1022 Q_PROPERTY(
int padding READ padding WRITE setPadding)
1023 Q_PROPERTY(
int offset READ offset WRITE setOffset)
1024 Q_PROPERTY(SelectableParts selectedParts READ selectedParts WRITE setSelectedParts NOTIFY selectionChanged)
1025 Q_PROPERTY(SelectableParts selectableParts READ selectableParts WRITE setSelectableParts NOTIFY selectableChanged)
1026 Q_PROPERTY(QFont selectedTickLabelFont READ selectedTickLabelFont WRITE setSelectedTickLabelFont)
1027 Q_PROPERTY(QFont selectedLabelFont READ selectedLabelFont WRITE setSelectedLabelFont)
1028 Q_PROPERTY(QColor selectedTickLabelColor READ selectedTickLabelColor WRITE setSelectedTickLabelColor)
1029 Q_PROPERTY(QColor selectedLabelColor READ selectedLabelColor WRITE setSelectedLabelColor)
1030 Q_PROPERTY(QPen selectedBasePen READ selectedBasePen WRITE setSelectedBasePen)
1031 Q_PROPERTY(QPen selectedTickPen READ selectedTickPen WRITE setSelectedTickPen)
1032 Q_PROPERTY(QPen selectedSubTickPen READ selectedSubTickPen WRITE setSelectedSubTickPen)
1033 Q_PROPERTY(
QCPLineEnding lowerEnding READ lowerEnding WRITE setLowerEnding)
1034 Q_PROPERTY(
QCPLineEnding upperEnding READ upperEnding WRITE setUpperEnding)
1035 Q_PROPERTY(
QCPGrid* grid READ grid)
1047 Q_FLAGS(AxisType AxisTypes)
1048 Q_DECLARE_FLAGS(AxisTypes, AxisType)
1082 ,spTickLabels = 0x002
1083 ,spAxisLabel = 0x004
1085 Q_FLAGS(SelectablePart SelectableParts)
1086 Q_DECLARE_FLAGS(SelectableParts, SelectablePart)
1105 int tickLabelPadding()
const;
1109 double tickLabelRotation()
const;
1110 LabelSide tickLabelSide()
const;
1113 QString numberFormat()
const;
1118 int tickLengthIn()
const;
1119 int tickLengthOut()
const;
1121 int subTickLengthIn()
const;
1122 int subTickLengthOut()
const;
1128 QString
label()
const {
return mLabel; }
1129 int labelPadding()
const;
1147 void setScaleLogBase(
double base);
1148 Q_SLOT
void setRange(
const QCPRange &range);
1149 void setRange(
double lower,
double upper);
1150 void setRange(
double position,
double size, Qt::AlignmentFlag alignment);
1151 void setRangeLower(
double lower);
1152 void setRangeUpper(
double upper);
1153 void setRangeReversed(
bool reversed);
1154 void setAutoTicks(
bool on);
1155 void setAutoTickCount(
int approximateCount);
1156 void setAutoTickLabels(
bool on);
1157 void setAutoTickStep(
bool on);
1158 void setAutoSubTicks(
bool on);
1159 void setTicks(
bool show);
1160 void setTickLabels(
bool show);
1161 void setTickLabelPadding(
int padding);
1162 void setTickLabelType(LabelType type);
1163 void setTickLabelFont(
const QFont &font);
1164 void setTickLabelColor(
const QColor &color);
1165 void setTickLabelRotation(
double degrees);
1166 void setTickLabelSide(LabelSide side);
1167 void setDateTimeFormat(
const QString &format);
1168 void setDateTimeSpec(
const Qt::TimeSpec &timeSpec);
1169 void setNumberFormat(
const QString &formatCode);
1170 void setNumberPrecision(
int precision);
1171 void setTickStep(
double step);
1172 void setTickVector(
const QVector<double> &vec);
1173 void setTickVectorLabels(
const QVector<QString> &vec);
1174 void setTickLength(
int inside,
int outside=0);
1175 void setTickLengthIn(
int inside);
1176 void setTickLengthOut(
int outside);
1177 void setSubTickCount(
int count);
1178 void setSubTickLength(
int inside,
int outside=0);
1179 void setSubTickLengthIn(
int inside);
1180 void setSubTickLengthOut(
int outside);
1181 void setBasePen(
const QPen &pen);
1182 void setTickPen(
const QPen &pen);
1183 void setSubTickPen(
const QPen &pen);
1184 void setLabelFont(
const QFont &font);
1185 void setLabelColor(
const QColor &color);
1186 void setLabel(
const QString &str);
1187 void setLabelPadding(
int padding);
1188 void setPadding(
int padding);
1189 void setOffset(
int offset);
1190 void setSelectedTickLabelFont(
const QFont &font);
1191 void setSelectedLabelFont(
const QFont &font);
1192 void setSelectedTickLabelColor(
const QColor &color);
1193 void setSelectedLabelColor(
const QColor &color);
1194 void setSelectedBasePen(
const QPen &pen);
1195 void setSelectedTickPen(
const QPen &pen);
1196 void setSelectedSubTickPen(
const QPen &pen);
1197 Q_SLOT
void setSelectableParts(
const QCPAxis::SelectableParts &selectableParts);
1198 Q_SLOT
void setSelectedParts(
const QCPAxis::SelectableParts &selectedParts);
1203 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
1207 void moveRange(
double diff);
1208 void scaleRange(
double factor,
double center);
1209 void setScaleRatio(
const QCPAxis *otherAxis,
double ratio=1.0);
1210 void rescale(
bool onlyVisiblePlottables=
false);
1211 double pixelToCoord(
double value)
const;
1212 double coordToPixel(
double value)
const;
1213 SelectablePart getPartAt(
const QPointF &pos)
const;
1214 QList<QCPAbstractPlottable*> plottables()
const;
1215 QList<QCPGraph*> graphs()
const;
1216 QList<QCPAbstractItem*> items()
const;
1219 static Qt::Orientation
orientation(
AxisType type) {
return type==atBottom||type==atTop ? Qt::Horizontal : Qt::Vertical; }
1220 static AxisType opposite(AxisType type);
1223 void ticksRequest();
1224 void rangeChanged(
const QCPRange &newRange);
1227 void selectionChanged(
const QCPAxis::SelectableParts &parts);
1228 void selectableChanged(
const QCPAxis::SelectableParts &parts);
1284 virtual void setupTickVectors();
1285 virtual void generateAutoTicks();
1286 virtual int calculateAutoSubTickCount(
double tickStep)
const;
1287 virtual int calculateMargin();
1294 virtual void selectEvent(QMouseEvent *event,
bool additive,
const QVariant &details,
bool *selectionStateChanged);
1298 void visibleTickBounds(
int &lowIndex,
int &highIndex)
const;
1299 double baseLog(
double value)
const;
1300 double basePow(
double value)
const;
1301 QPen getBasePen()
const;
1302 QPen getTickPen()
const;
1303 QPen getSubTickPen()
const;
1304 QFont getTickLabelFont()
const;
1305 QFont getLabelFont()
const;
1306 QColor getTickLabelColor()
const;
1307 QColor getLabelColor()
const;
1312 friend class QCustomPlot;
1316 Q_DECLARE_OPERATORS_FOR_FLAGS(
QCPAxis::SelectableParts)
1317 Q_DECLARE_OPERATORS_FOR_FLAGS(
QCPAxis::AxisTypes)
1324 explicit QCPAxisPainterPrivate(QCustomPlot *parentPlot);
1325 virtual ~QCPAxisPainterPrivate();
1328 virtual int size()
const;
1378 virtual QByteArray generateLabelParameterHash()
const;
1380 virtual void placeTickLabel(
QCPPainter *painter,
double position,
int distanceToAxis,
const QString &text, QSize *tickLabelsSize);
1382 virtual TickLabelData getTickLabelData(
const QFont &font,
const QString &text)
const;
1383 virtual QPointF getTickLabelDrawOffset(
const TickLabelData &labelData)
const;
1384 virtual void getMaxTickLabelSize(
const QFont &font,
const QString &text, QSize *tickLabelsSize)
const;
1392 Q_PROPERTY(QString name READ name WRITE setName)
1393 Q_PROPERTY(
bool antialiasedFill READ antialiasedFill WRITE setAntialiasedFill)
1394 Q_PROPERTY(
bool antialiasedScatters READ antialiasedScatters WRITE setAntialiasedScatters)
1395 Q_PROPERTY(
bool antialiasedErrorBars READ antialiasedErrorBars WRITE setAntialiasedErrorBars)
1396 Q_PROPERTY(QPen pen READ pen WRITE setPen)
1397 Q_PROPERTY(QPen selectedPen READ selectedPen WRITE setSelectedPen)
1398 Q_PROPERTY(QBrush brush READ brush WRITE setBrush)
1399 Q_PROPERTY(QBrush selectedBrush READ selectedBrush WRITE setSelectedBrush)
1400 Q_PROPERTY(
QCPAxis* keyAxis READ keyAxis WRITE setKeyAxis)
1401 Q_PROPERTY(
QCPAxis* valueAxis READ valueAxis WRITE setValueAxis)
1402 Q_PROPERTY(
bool selectable READ selectable WRITE setSelectable NOTIFY selectableChanged)
1403 Q_PROPERTY(
bool selected READ selected WRITE setSelected NOTIFY selectionChanged)
1409 QString
name()
const {
return mName; }
1413 QPen
pen()
const {
return mPen; }
1423 void setName(
const QString &name);
1424 void setAntialiasedFill(
bool enabled);
1425 void setAntialiasedScatters(
bool enabled);
1426 void setAntialiasedErrorBars(
bool enabled);
1427 void setPen(
const QPen &pen);
1428 void setSelectedPen(
const QPen &pen);
1429 void setBrush(
const QBrush &brush);
1430 void setSelectedBrush(
const QBrush &brush);
1431 void setKeyAxis(
QCPAxis *axis);
1432 void setValueAxis(
QCPAxis *axis);
1433 Q_SLOT
void setSelectable(
bool selectable);
1434 Q_SLOT
void setSelected(
bool selected);
1437 virtual void clearData() = 0;
1438 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const = 0;
1439 virtual bool addToLegend();
1440 virtual bool removeFromLegend()
const;
1443 void rescaleAxes(
bool onlyEnlarge=
false)
const;
1444 void rescaleKeyAxis(
bool onlyEnlarge=
false)
const;
1445 void rescaleValueAxis(
bool onlyEnlarge=
false)
const;
1448 void selectionChanged(
bool selected);
1449 void selectableChanged(
bool selectable);
1474 virtual void selectEvent(QMouseEvent *event,
bool additive,
const QVariant &details,
bool *selectionStateChanged);
1478 virtual void drawLegendIcon(
QCPPainter *painter,
const QRectF &rect)
const = 0;
1479 virtual QCPRange getKeyRange(
bool &foundRange,
SignDomain inSignDomain=sdBoth)
const = 0;
1480 virtual QCPRange getValueRange(
bool &foundRange,
SignDomain inSignDomain=sdBoth)
const = 0;
1483 void coordsToPixels(
double key,
double value,
double &x,
double &y)
const;
1484 const QPointF coordsToPixels(
double key,
double value)
const;
1485 void pixelsToCoords(
double x,
double y,
double &key,
double &value)
const;
1486 void pixelsToCoords(
const QPointF &pixelPos,
double &key,
double &value)
const;
1487 QPen mainPen()
const;
1488 QBrush mainBrush()
const;
1489 void applyFillAntialiasingHint(
QCPPainter *painter)
const;
1490 void applyScattersAntialiasingHint(
QCPPainter *painter)
const;
1491 void applyErrorBarsAntialiasingHint(
QCPPainter *painter)
const;
1492 double distSqrToLine(
const QPointF &start,
const QPointF &end,
const QPointF &point)
const;
1497 friend class QCustomPlot;
1506 QCPItemAnchor(QCustomPlot *parentPlot,
QCPAbstractItem *parentItem,
const QString name,
int anchorId=-1);
1507 virtual ~QCPItemAnchor();
1510 QString
name()
const {
return mName; }
1511 virtual QPointF pixelPoint()
const;
1533 Q_DISABLE_COPY(QCPItemAnchor)
1559 QCPItemPosition(QCustomPlot *parentPlot,
QCPAbstractItem *parentItem,
const QString name);
1560 virtual ~QCPItemPosition();
1569 double key()
const {
return mKey; }
1571 QPointF
coords()
const {
return QPointF(mKey, mValue); }
1572 QCPAxis *
keyAxis()
const {
return mKeyAxis.data(); }
1575 virtual QPointF pixelPoint()
const;
1578 void setType(PositionType type);
1579 void setTypeX(PositionType type);
1580 void setTypeY(PositionType type);
1581 bool setParentAnchor(QCPItemAnchor *parentAnchor,
bool keepPixelPosition=
false);
1582 bool setParentAnchorX(QCPItemAnchor *parentAnchor,
bool keepPixelPosition=
false);
1583 bool setParentAnchorY(QCPItemAnchor *parentAnchor,
bool keepPixelPosition=
false);
1584 void setCoords(
double key,
double value);
1585 void setCoords(
const QPointF &coords);
1586 void setAxes(QCPAxis* keyAxis, QCPAxis* valueAxis);
1588 void setPixelPoint(
const QPointF &pixelPoint);
1602 Q_DISABLE_COPY(QCPItemPosition)
1611 Q_PROPERTY(
bool clipToAxisRect READ clipToAxisRect WRITE setClipToAxisRect)
1612 Q_PROPERTY(
QCPAxisRect* clipAxisRect READ clipAxisRect WRITE setClipAxisRect)
1613 Q_PROPERTY(
bool selectable READ selectable WRITE setSelectable NOTIFY selectableChanged)
1614 Q_PROPERTY(
bool selected READ selected WRITE setSelected NOTIFY selectionChanged)
1627 void setClipToAxisRect(
bool clip);
1629 Q_SLOT
void setSelectable(
bool selectable);
1630 Q_SLOT
void setSelected(
bool selected);
1633 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const = 0;
1636 QList<QCPItemPosition*>
positions()
const {
return mPositions; }
1637 QList<QCPItemAnchor*>
anchors()
const {
return mAnchors; }
1639 QCPItemAnchor *anchor(
const QString &name)
const;
1640 bool hasAnchor(
const QString &name)
const;
1643 void selectionChanged(
bool selected);
1644 void selectableChanged(
bool selectable);
1660 virtual void selectEvent(QMouseEvent *event,
bool additive,
const QVariant &details,
bool *selectionStateChanged);
1664 virtual QPointF anchorPixelPoint(
int anchorId)
const;
1667 double distSqrToLine(
const QPointF &start,
const QPointF &end,
const QPointF &point)
const;
1668 double rectSelectTest(
const QRectF &rect,
const QPointF &pos,
bool filledRect)
const;
1670 QCPItemAnchor *createAnchor(
const QString &name,
int anchorId);
1675 friend class QCustomPlot;
1676 friend class QCPItemAnchor;
1684 Q_PROPERTY(QRect viewport READ viewport WRITE setViewport)
1685 Q_PROPERTY(QPixmap background READ background WRITE setBackground)
1686 Q_PROPERTY(
bool backgroundScaled READ backgroundScaled WRITE setBackgroundScaled)
1687 Q_PROPERTY(Qt::AspectRatioMode backgroundScaledMode READ backgroundScaledMode WRITE setBackgroundScaledMode)
1689 Q_PROPERTY(
bool autoAddPlottableToLegend READ autoAddPlottableToLegend WRITE setAutoAddPlottableToLegend)
1690 Q_PROPERTY(
int selectionTolerance READ selectionTolerance WRITE setSelectionTolerance)
1691 Q_PROPERTY(
bool noAntialiasingOnDrag READ noAntialiasingOnDrag WRITE setNoAntialiasingOnDrag)
1692 Q_PROPERTY(Qt::KeyboardModifier multiSelectModifier READ multiSelectModifier WRITE setMultiSelectModifier)
1703 Q_ENUMS(LayerInsertMode)
1716 virtual ~QCustomPlot();
1734 void setViewport(
const QRect &rect);
1735 void setBackground(
const QPixmap &pm);
1736 void setBackground(
const QPixmap &pm,
bool scaled, Qt::AspectRatioMode mode=Qt::KeepAspectRatioByExpanding);
1737 void setBackground(
const QBrush &brush);
1738 void setBackgroundScaled(
bool scaled);
1739 void setBackgroundScaledMode(Qt::AspectRatioMode mode);
1740 void setAntialiasedElements(
const QCP::AntialiasedElements &antialiasedElements);
1742 void setNotAntialiasedElements(
const QCP::AntialiasedElements ¬AntialiasedElements);
1744 void setAutoAddPlottableToLegend(
bool on);
1745 void setInteractions(
const QCP::Interactions &interactions);
1746 void setInteraction(
const QCP::Interaction &interaction,
bool enabled=
true);
1747 void setSelectionTolerance(
int pixels);
1748 void setNoAntialiasingOnDrag(
bool enabled);
1749 void setPlottingHints(
const QCP::PlottingHints &hints);
1751 void setMultiSelectModifier(Qt::KeyboardModifier modifier);
1759 bool removePlottable(
int index);
1760 int clearPlottables();
1761 int plottableCount()
const;
1762 QList<QCPAbstractPlottable*> selectedPlottables()
const;
1769 QCPGraph *addGraph(QCPAxis *keyAxis=0, QCPAxis *valueAxis=0);
1771 bool removeGraph(
int index);
1773 int graphCount()
const;
1774 QList<QCPGraph*> selectedGraphs()
const;
1781 bool removeItem(
int index);
1783 int itemCount()
const;
1784 QList<QCPAbstractItem*> selectedItems()
const;
1785 QCPAbstractItem *itemAt(
const QPointF &pos,
bool onlySelectable=
false)
const;
1792 bool setCurrentLayer(
const QString &name);
1793 bool setCurrentLayer(
QCPLayer *layer);
1794 int layerCount()
const;
1795 bool addLayer(
const QString &name,
QCPLayer *otherLayer=0, LayerInsertMode insertMode=limAbove);
1797 bool moveLayer(
QCPLayer *layer,
QCPLayer *otherLayer, LayerInsertMode insertMode=limAbove);
1800 int axisRectCount()
const;
1802 QList<QCPAxisRect*> axisRects()
const;
1804 Q_SLOT
void rescaleAxes(
bool onlyVisiblePlottables=
false);
1806 QList<QCPAxis*> selectedAxes()
const;
1807 QList<QCPLegend*> selectedLegends()
const;
1808 Q_SLOT
void deselectAll();
1810 bool savePdf(
const QString &fileName,
bool noCosmeticPen=
false,
int width=0,
int height=0,
const QString &pdfCreator=QString(),
const QString &pdfTitle=QString());
1811 bool savePng(
const QString &fileName,
int width=0,
int height=0,
double scale=1.0,
int quality=-1);
1812 bool saveJpg(
const QString &fileName,
int width=0,
int height=0,
double scale=1.0,
int quality=-1);
1813 bool saveBmp(
const QString &fileName,
int width=0,
int height=0,
double scale=1.0);
1814 bool saveRastered(
const QString &fileName,
int width,
int height,
double scale,
const char *format,
int quality=-1);
1815 QPixmap toPixmap(
int width=0,
int height=0,
double scale=1.0);
1816 void toPainter(
QCPPainter *painter,
int width=0,
int height=0);
1823 void mouseDoubleClick(QMouseEvent *event);
1824 void mousePress(QMouseEvent *event);
1825 void mouseMove(QMouseEvent *event);
1826 void mouseRelease(QMouseEvent *event);
1827 void mouseWheel(QWheelEvent *event);
1837 void titleClick(QMouseEvent *event,
QCPPlotTitle *title);
1838 void titleDoubleClick(QMouseEvent *event,
QCPPlotTitle *title);
1840 void selectionChangedByUser();
1841 void beforeReplot();
1873 virtual QSize minimumSizeHint()
const;
1874 virtual QSize sizeHint()
const;
1875 virtual void paintEvent(QPaintEvent *event);
1876 virtual void resizeEvent(QResizeEvent *event);
1877 virtual void mouseDoubleClickEvent(QMouseEvent *event);
1878 virtual void mousePressEvent(QMouseEvent *event);
1879 virtual void mouseMoveEvent(QMouseEvent *event);
1880 virtual void mouseReleaseEvent(QMouseEvent *event);
1881 virtual void wheelEvent(QWheelEvent *event);
1885 virtual void axisRemoved(QCPAxis *axis);
1886 virtual void legendRemoved(
QCPLegend *legend);
1889 void updateLayerIndices()
const;
1890 QCPLayerable *layerableAt(
const QPointF &pos,
bool onlySelectable, QVariant *selectionDetails=0)
const;
1894 friend class QCPAxis;
1912 Q_ENUMS(ColorInterpolation)
1931 Q_ENUMS(GradientPreset)
1944 void setLevelCount(
int n);
1945 void setColorStops(
const QMap<double, QColor> &colorStops);
1946 void setColorStopAt(
double position,
const QColor &color);
1947 void setColorInterpolation(ColorInterpolation interpolation);
1948 void setPeriodic(
bool enabled);
1951 void colorize(
const double *data,
const QCPRange &range, QRgb *scanLine,
int n,
int dataIndexFactor=1,
bool logarithmic=
false);
1952 QRgb color(
double position,
const QCPRange &range,
bool logarithmic=
false);
1953 void loadPreset(GradientPreset preset);
1954 void clearColorStops();
1958 void updateColorBuffer();
1976 Q_PROPERTY(QPixmap background READ background WRITE setBackground)
1977 Q_PROPERTY(
bool backgroundScaled READ backgroundScaled WRITE setBackgroundScaled)
1978 Q_PROPERTY(Qt::AspectRatioMode backgroundScaledMode READ backgroundScaledMode WRITE setBackgroundScaledMode)
1979 Q_PROPERTY(Qt::Orientations rangeDrag READ rangeDrag WRITE setRangeDrag)
1980 Q_PROPERTY(Qt::Orientations rangeZoom READ rangeZoom WRITE setRangeZoom)
1983 explicit QCPAxisRect(QCustomPlot *parentPlot,
bool setupDefaultAxes=
true);
1992 QCPAxis *rangeDragAxis(Qt::Orientation orientation);
1993 QCPAxis *rangeZoomAxis(Qt::Orientation orientation);
1994 double rangeZoomFactor(Qt::Orientation orientation);
1997 void setBackground(
const QPixmap &pm);
1998 void setBackground(
const QPixmap &pm,
bool scaled, Qt::AspectRatioMode mode=Qt::KeepAspectRatioByExpanding);
1999 void setBackground(
const QBrush &brush);
2000 void setBackgroundScaled(
bool scaled);
2001 void setBackgroundScaledMode(Qt::AspectRatioMode mode);
2002 void setRangeDrag(Qt::Orientations orientations);
2003 void setRangeZoom(Qt::Orientations orientations);
2004 void setRangeDragAxes(QCPAxis *horizontal, QCPAxis *vertical);
2005 void setRangeZoomAxes(QCPAxis *horizontal, QCPAxis *vertical);
2006 void setRangeZoomFactor(
double horizontalFactor,
double verticalFactor);
2007 void setRangeZoomFactor(
double factor);
2012 QList<QCPAxis*> axes(QCPAxis::AxisTypes types)
const;
2013 QList<QCPAxis*> axes()
const;
2015 QList<QCPAxis*> addAxes(QCPAxis::AxisTypes types);
2016 bool removeAxis(QCPAxis *axis);
2019 void setupFullAxesBox(
bool connectRanges=
false);
2020 QList<QCPAbstractPlottable*> plottables()
const;
2021 QList<QCPGraph*> graphs()
const;
2022 QList<QCPAbstractItem*> items()
const;
2025 int left()
const {
return mRect.left(); }
2026 int right()
const {
return mRect.right(); }
2027 int top()
const {
return mRect.top(); }
2028 int bottom()
const {
return mRect.bottom(); }
2029 int width()
const {
return mRect.width(); }
2030 int height()
const {
return mRect.height(); }
2031 QSize
size()
const {
return mRect.size(); }
2032 QPoint
topLeft()
const {
return mRect.topLeft(); }
2036 QPoint
center()
const {
return mRect.center(); }
2039 virtual void update(UpdatePhase phase);
2040 virtual QList<QCPLayoutElement*>
elements(
bool recursive)
const;
2058 QHash<QCPAxis::AxisType, QList<QCPAxis*> >
mAxes;
2077 friend class QCustomPlot;
2085 Q_PROPERTY(
QCPLegend* parentLegend READ parentLegend)
2086 Q_PROPERTY(QFont font READ font WRITE setFont)
2087 Q_PROPERTY(QColor textColor READ textColor WRITE setTextColor)
2088 Q_PROPERTY(QFont selectedFont READ selectedFont WRITE setSelectedFont)
2089 Q_PROPERTY(QColor selectedTextColor READ selectedTextColor WRITE setSelectedTextColor)
2090 Q_PROPERTY(
bool selectable READ selectable WRITE setSelectable NOTIFY selectionChanged)
2091 Q_PROPERTY(
bool selected READ selected WRITE setSelected NOTIFY selectableChanged)
2098 QFont
font()
const {
return mFont; }
2106 void setFont(
const QFont &font);
2107 void setTextColor(
const QColor &color);
2108 void setSelectedFont(
const QFont &font);
2109 void setSelectedTextColor(
const QColor &color);
2110 Q_SLOT
void setSelectable(
bool selectable);
2111 Q_SLOT
void setSelected(
bool selected);
2114 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
2117 void selectionChanged(
bool selected);
2118 void selectableChanged(
bool selectable);
2135 virtual void selectEvent(QMouseEvent *event,
bool additive,
const QVariant &details,
bool *selectionStateChanged);
2163 QPen getIconBorderPen()
const;
2164 QColor getTextColor()
const;
2165 QFont getFont()
const;
2173 Q_PROPERTY(QPen borderPen READ borderPen WRITE setBorderPen)
2174 Q_PROPERTY(QBrush brush READ brush WRITE setBrush)
2175 Q_PROPERTY(QFont font READ font WRITE setFont)
2176 Q_PROPERTY(QColor textColor READ textColor WRITE setTextColor)
2177 Q_PROPERTY(QSize iconSize READ iconSize WRITE setIconSize)
2178 Q_PROPERTY(
int iconTextPadding READ iconTextPadding WRITE setIconTextPadding)
2179 Q_PROPERTY(QPen iconBorderPen READ iconBorderPen WRITE setIconBorderPen)
2180 Q_PROPERTY(SelectableParts selectableParts READ selectableParts WRITE setSelectableParts NOTIFY selectionChanged)
2181 Q_PROPERTY(SelectableParts selectedParts READ selectedParts WRITE setSelectedParts NOTIFY selectableChanged)
2182 Q_PROPERTY(QPen selectedBorderPen READ selectedBorderPen WRITE setSelectedBorderPen)
2183 Q_PROPERTY(QPen selectedIconBorderPen READ selectedIconBorderPen WRITE setSelectedIconBorderPen)
2184 Q_PROPERTY(QBrush selectedBrush READ selectedBrush WRITE setSelectedBrush)
2185 Q_PROPERTY(QFont selectedFont READ selectedFont WRITE setSelectedFont)
2186 Q_PROPERTY(QColor selectedTextColor READ selectedTextColor WRITE setSelectedTextColor)
2195 ,spLegendBox = 0x001
2198 Q_FLAGS(SelectablePart SelectableParts)
2199 Q_DECLARE_FLAGS(SelectableParts, SelectablePart)
2202 virtual ~QCPLegend();
2205 QPen borderPen()
const {
return mBorderPen; }
2207 QFont
font()
const {
return mFont; }
2213 SelectableParts selectedParts()
const;
2221 void setBorderPen(
const QPen &pen);
2222 void setBrush(
const QBrush &brush);
2223 void setFont(
const QFont &font);
2224 void setTextColor(
const QColor &color);
2225 void setIconSize(
const QSize &size);
2226 void setIconSize(
int width,
int height);
2227 void setIconTextPadding(
int padding);
2228 void setIconBorderPen(
const QPen &pen);
2229 Q_SLOT
void setSelectableParts(
const SelectableParts &selectableParts);
2230 Q_SLOT
void setSelectedParts(
const SelectableParts &selectedParts);
2231 void setSelectedBorderPen(
const QPen &pen);
2232 void setSelectedIconBorderPen(
const QPen &pen);
2233 void setSelectedBrush(
const QBrush &brush);
2234 void setSelectedFont(
const QFont &font);
2235 void setSelectedTextColor(
const QColor &color);
2238 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
2243 int itemCount()
const;
2247 bool removeItem(
int index);
2250 QList<QCPAbstractLegendItem*> selectedItems()
const;
2253 void selectionChanged(QCPLegend::SelectableParts parts);
2254 void selectableChanged(QCPLegend::SelectableParts parts);
2276 virtual void selectEvent(QMouseEvent *event,
bool additive,
const QVariant &details,
bool *selectionStateChanged);
2280 QPen getBorderPen()
const;
2281 QBrush getBrush()
const;
2286 friend class QCustomPlot;
2289 Q_DECLARE_OPERATORS_FOR_FLAGS(
QCPLegend::SelectableParts)
2297 Q_PROPERTY(QString text READ text WRITE setText)
2298 Q_PROPERTY(QFont font READ font WRITE setFont)
2299 Q_PROPERTY(QColor textColor READ textColor WRITE setTextColor)
2300 Q_PROPERTY(QFont selectedFont READ selectedFont WRITE setSelectedFont)
2301 Q_PROPERTY(QColor selectedTextColor READ selectedTextColor WRITE setSelectedTextColor)
2302 Q_PROPERTY(
bool selectable READ selectable WRITE setSelectable NOTIFY selectableChanged)
2303 Q_PROPERTY(
bool selected READ selected WRITE setSelected NOTIFY selectionChanged)
2307 explicit QCPPlotTitle(QCustomPlot *parentPlot,
const QString &text);
2310 QString
text()
const {
return mText; }
2311 QFont
font()
const {
return mFont; }
2319 void setText(
const QString &text);
2320 void setFont(
const QFont &font);
2321 void setTextColor(
const QColor &color);
2322 void setSelectedFont(
const QFont &font);
2323 void setSelectedTextColor(
const QColor &color);
2324 Q_SLOT
void setSelectable(
bool selectable);
2325 Q_SLOT
void setSelected(
bool selected);
2328 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
2331 void selectionChanged(
bool selected);
2332 void selectableChanged(
bool selectable);
2350 virtual void selectEvent(QMouseEvent *event,
bool additive,
const QVariant &details,
bool *selectionStateChanged);
2354 QFont mainFont()
const;
2355 QColor mainTextColor()
const;
2379 void updateGradientImage();
2380 Q_SLOT
void axisSelectionChanged(QCPAxis::SelectableParts selectedParts);
2381 Q_SLOT
void axisSelectableChanged(QCPAxis::SelectableParts selectableParts);
2391 Q_PROPERTY(
QCPRange dataRange READ dataRange WRITE setDataRange NOTIFY dataRangeChanged)
2392 Q_PROPERTY(
QCPAxis::ScaleType dataScaleType READ dataScaleType WRITE setDataScaleType NOTIFY dataScaleTypeChanged)
2393 Q_PROPERTY(
QCPColorGradient gradient READ gradient WRITE setGradient NOTIFY gradientChanged)
2394 Q_PROPERTY(QString label READ label WRITE setLabel)
2395 Q_PROPERTY(
int barWidth READ barWidth WRITE setBarWidth)
2396 Q_PROPERTY(
bool rangeDrag READ rangeDrag WRITE setRangeDrag)
2397 Q_PROPERTY(
bool rangeZoom READ rangeZoom WRITE setRangeZoom)
2404 QCPAxis *
axis()
const {
return mColorAxis.data(); }
2409 QString label()
const;
2411 bool rangeDrag()
const;
2412 bool rangeZoom()
const;
2416 Q_SLOT
void setDataRange(
const QCPRange &dataRange);
2419 void setLabel(
const QString &str);
2420 void setBarWidth(
int width);
2421 void setRangeDrag(
bool enabled);
2422 void setRangeZoom(
bool enabled);
2425 QList<QCPColorMap*> colorMaps()
const;
2426 void rescaleDataRange(
bool onlyVisibleMaps);
2429 virtual void update(UpdatePhase phase);
2432 void dataRangeChanged(
QCPRange newRange);
2471 QCPData(
double key,
double value);
2494 Q_PROPERTY(
LineStyle lineStyle READ lineStyle WRITE setLineStyle)
2495 Q_PROPERTY(
QCPScatterStyle scatterStyle READ scatterStyle WRITE setScatterStyle)
2496 Q_PROPERTY(
ErrorType errorType READ errorType WRITE setErrorType)
2497 Q_PROPERTY(QPen errorPen READ errorPen WRITE setErrorPen)
2498 Q_PROPERTY(
double errorBarSize READ errorBarSize WRITE setErrorBarSize)
2499 Q_PROPERTY(
bool errorBarSkipSymbol READ errorBarSkipSymbol WRITE setErrorBarSkipSymbol)
2500 Q_PROPERTY(
QCPGraph* channelFillGraph READ channelFillGraph WRITE setChannelFillGraph)
2501 Q_PROPERTY(
bool adaptiveSampling READ adaptiveSampling WRITE setAdaptiveSampling)
2528 explicit
QCPGraph(QCPAxis *keyAxis, QCPAxis *valueAxis);
2543 void setData(
QCPDataMap *data,
bool copy=
false);
2544 void setData(
const QVector<double> &key,
const QVector<double> &value);
2545 void setDataKeyError(
const QVector<double> &key,
const QVector<double> &value,
const QVector<double> &keyError);
2546 void setDataKeyError(
const QVector<double> &key,
const QVector<double> &value,
const QVector<double> &keyErrorMinus,
const QVector<double> &keyErrorPlus);
2547 void setDataValueError(
const QVector<double> &key,
const QVector<double> &value,
const QVector<double> &valueError);
2548 void setDataValueError(
const QVector<double> &key,
const QVector<double> &value,
const QVector<double> &valueErrorMinus,
const QVector<double> &valueErrorPlus);
2549 void setDataBothError(
const QVector<double> &key,
const QVector<double> &value,
const QVector<double> &keyError,
const QVector<double> &valueError);
2550 void setDataBothError(
const QVector<double> &key,
const QVector<double> &value,
const QVector<double> &keyErrorMinus,
const QVector<double> &keyErrorPlus,
const QVector<double> &valueErrorMinus,
const QVector<double> &valueErrorPlus);
2551 void setLineStyle(LineStyle ls);
2553 void setErrorType(ErrorType errorType);
2554 void setErrorPen(
const QPen &pen);
2555 void setErrorBarSize(
double size);
2556 void setErrorBarSkipSymbol(
bool enabled);
2557 void setChannelFillGraph(
QCPGraph *targetGraph);
2558 void setAdaptiveSampling(
bool enabled);
2562 void addData(
const QCPData &data);
2563 void addData(
double key,
double value);
2564 void addData(
const QVector<double> &keys,
const QVector<double> &values);
2565 void removeDataBefore(
double key);
2566 void removeDataAfter(
double key);
2567 void removeData(
double fromKey,
double toKey);
2568 void removeData(
double key);
2572 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
2576 void rescaleAxes(
bool onlyEnlarge,
bool includeErrorBars)
const;
2577 void rescaleKeyAxis(
bool onlyEnlarge,
bool includeErrorBars)
const;
2601 virtual void drawFill(
QCPPainter *painter, QVector<QPointF> *lineData)
const;
2602 virtual void drawScatterPlot(
QCPPainter *painter, QVector<QCPData> *scatterData)
const;
2603 virtual void drawLinePlot(
QCPPainter *painter, QVector<QPointF> *lineData)
const;
2604 virtual void drawImpulsePlot(
QCPPainter *painter, QVector<QPointF> *lineData)
const;
2607 void getPreparedData(QVector<QCPData> *lineData, QVector<QCPData> *scatterData)
const;
2608 void getPlotData(QVector<QPointF> *lineData, QVector<QCPData> *scatterData)
const;
2609 void getScatterPlotData(QVector<QCPData> *scatterData)
const;
2610 void getLinePlotData(QVector<QPointF> *linePixelData, QVector<QCPData> *scatterData)
const;
2611 void getStepLeftPlotData(QVector<QPointF> *linePixelData, QVector<QCPData> *scatterData)
const;
2612 void getStepRightPlotData(QVector<QPointF> *linePixelData, QVector<QCPData> *scatterData)
const;
2613 void getStepCenterPlotData(QVector<QPointF> *linePixelData, QVector<QCPData> *scatterData)
const;
2614 void getImpulsePlotData(QVector<QPointF> *linePixelData, QVector<QCPData> *scatterData)
const;
2615 void drawError(
QCPPainter *painter,
double x,
double y,
const QCPData &data)
const;
2616 void getVisibleDataBounds(QCPDataMap::const_iterator &lower, QCPDataMap::const_iterator &upper)
const;
2617 int countDataInBounds(
const QCPDataMap::const_iterator &lower,
const QCPDataMap::const_iterator &upper,
int maxCount)
const;
2618 void addFillBasePoints(QVector<QPointF> *lineData)
const;
2619 void removeFillBasePoints(QVector<QPointF> *lineData)
const;
2620 QPointF lowerFillBasePoint(
double lowerKey)
const;
2621 QPointF upperFillBasePoint(
double upperKey)
const;
2622 const QPolygonF getChannelFillPolygon(
const QVector<QPointF> *lineData)
const;
2623 int findIndexBelowX(
const QVector<QPointF> *data,
double x)
const;
2624 int findIndexAboveX(
const QVector<QPointF> *data,
double x)
const;
2625 int findIndexBelowY(
const QVector<QPointF> *data,
double y)
const;
2626 int findIndexAboveY(
const QVector<QPointF> *data,
double y)
const;
2627 double pointDistance(
const QPointF &pixelPoint)
const;
2629 friend class QCustomPlot;
2664 Q_PROPERTY(
QCPScatterStyle scatterStyle READ scatterStyle WRITE setScatterStyle)
2665 Q_PROPERTY(
LineStyle lineStyle READ lineStyle WRITE setLineStyle)
2676 explicit QCPCurve(QCPAxis *keyAxis, QCPAxis *valueAxis);
2686 void setData(
const QVector<double> &t,
const QVector<double> &key,
const QVector<double> &value);
2687 void setData(
const QVector<double> &key,
const QVector<double> &value);
2689 void setLineStyle(LineStyle style);
2694 void addData(
double t,
double key,
double value);
2695 void addData(
double key,
double value);
2696 void addData(
const QVector<double> &ts,
const QVector<double> &keys,
const QVector<double> &values);
2697 void removeDataBefore(
double t);
2698 void removeDataAfter(
double t);
2699 void removeData(
double fromt,
double tot);
2700 void removeData(
double t);
2704 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
2719 virtual void drawScatterPlot(
QCPPainter *painter,
const QVector<QPointF> *pointData)
const;
2722 void getCurveData(QVector<QPointF> *lineData)
const;
2723 int getRegion(
double x,
double y,
double rectLeft,
double rectTop,
double rectRight,
double rectBottom)
const;
2724 QPointF getOptimizedPoint(
int prevRegion,
double prevKey,
double prevValue,
double key,
double value,
double rectLeft,
double rectTop,
double rectRight,
double rectBottom)
const;
2725 QVector<QPointF> getOptimizedCornerPoints(
int prevRegion,
int currentRegion,
double prevKey,
double prevValue,
double key,
double value,
double rectLeft,
double rectTop,
double rectRight,
double rectBottom)
const;
2726 bool mayTraverse(
int prevRegion,
int currentRegion)
const;
2727 bool getTraverse(
double prevKey,
double prevValue,
double key,
double value,
double rectLeft,
double rectTop,
double rectRight,
double rectBottom, QPointF &crossA, QPointF &crossB)
const;
2728 void getTraverseCornerPoints(
int prevRegion,
int currentRegion,
double rectLeft,
double rectTop,
double rectRight,
double rectBottom, QVector<QPointF> &beforeTraverse, QVector<QPointF> &afterTraverse)
const;
2729 double pointDistance(
const QPointF &pixelPoint)
const;
2731 friend class QCustomPlot;
2744 Q_PROPERTY(
SpacingType spacingType READ spacingType WRITE setSpacingType)
2745 Q_PROPERTY(
double spacing READ spacing WRITE setSpacing)
2766 void setSpacingType(SpacingType spacingType);
2767 void setSpacing(
double spacing);
2770 QList<QCPBars*>
bars()
const {
return mBars; }
2771 QCPBars* bars(
int index)
const;
2772 int size()
const {
return mBars.size(); }
2777 void insert(
int i,
QCPBars *bars);
2788 void registerBars(
QCPBars *bars);
2789 void unregisterBars(
QCPBars *bars);
2792 double keyPixelOffset(
const QCPBars *bars,
double keyCoord);
2793 double getPixelSpacing(
const QCPBars *bars,
double keyCoord);
2806 QCPBarData(
double key,
double value);
2827 Q_PROPERTY(
double width READ width WRITE setWidth)
2828 Q_PROPERTY(
WidthType widthType READ widthType WRITE setWidthType)
2829 Q_PROPERTY(
QCPBarsGroup* barsGroup READ barsGroup WRITE setBarsGroup)
2830 Q_PROPERTY(
double baseValue READ baseValue WRITE setBaseValue)
2831 Q_PROPERTY(
QCPBars* barBelow READ barBelow)
2832 Q_PROPERTY(
QCPBars* barAbove READ barAbove)
2847 explicit
QCPBars(QCPAxis *keyAxis, QCPAxis *valueAxis);
2851 double width()
const {
return mWidth; }
2860 void setWidth(
double width);
2861 void setWidthType(WidthType widthType);
2863 void setBaseValue(
double baseValue);
2865 void setData(
const QVector<double> &key,
const QVector<double> &value);
2868 void moveBelow(
QCPBars *bars);
2869 void moveAbove(
QCPBars *bars);
2872 void addData(
double key,
double value);
2873 void addData(
const QVector<double> &keys,
const QVector<double> &values);
2874 void removeDataBefore(
double key);
2875 void removeDataAfter(
double key);
2876 void removeData(
double fromKey,
double toKey);
2877 void removeData(
double key);
2881 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
2899 void getVisibleDataBounds(QCPBarDataMap::const_iterator &lower, QCPBarDataMap::const_iterator &upperEnd)
const;
2900 QPolygonF getBarPolygon(
double key,
double value)
const;
2901 void getPixelWidth(
double key,
double &lower,
double &upper)
const;
2902 double getStackedBaseValue(
double key,
bool positive)
const;
2905 friend class QCustomPlot;
2919 Q_PROPERTY(
double key READ key WRITE setKey)
2920 Q_PROPERTY(
double minimum READ minimum WRITE setMinimum)
2921 Q_PROPERTY(
double lowerQuartile READ lowerQuartile WRITE setLowerQuartile)
2922 Q_PROPERTY(
double median READ median WRITE setMedian)
2923 Q_PROPERTY(
double upperQuartile READ upperQuartile WRITE setUpperQuartile)
2924 Q_PROPERTY(
double maximum READ maximum WRITE setMaximum)
2925 Q_PROPERTY(QVector<double> outliers READ outliers WRITE setOutliers)
2926 Q_PROPERTY(
double width READ width WRITE setWidth)
2927 Q_PROPERTY(
double whiskerWidth READ whiskerWidth WRITE setWhiskerWidth)
2928 Q_PROPERTY(QPen whiskerPen READ whiskerPen WRITE setWhiskerPen)
2929 Q_PROPERTY(QPen whiskerBarPen READ whiskerBarPen WRITE setWhiskerBarPen)
2930 Q_PROPERTY(QPen medianPen READ medianPen WRITE setMedianPen)
2931 Q_PROPERTY(
QCPScatterStyle outlierStyle READ outlierStyle WRITE setOutlierStyle)
2937 double key()
const {
return mKey; }
2952 void setKey(
double key);
2953 void setMinimum(
double value);
2954 void setLowerQuartile(
double value);
2955 void setMedian(
double value);
2956 void setUpperQuartile(
double value);
2957 void setMaximum(
double value);
2958 void setOutliers(
const QVector<double> &values);
2959 void setData(
double key,
double minimum,
double lowerQuartile,
double median,
double upperQuartile,
double maximum);
2960 void setWidth(
double width);
2961 void setWhiskerWidth(
double width);
2962 void setWhiskerPen(
const QPen &pen);
2963 void setWhiskerBarPen(
const QPen &pen);
2964 void setMedianPen(
const QPen &pen);
2969 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
2987 virtual void drawQuartileBox(
QCPPainter *painter, QRectF *quartileBox=0)
const;
2988 virtual void drawMedian(
QCPPainter *painter)
const;
2989 virtual void drawWhiskers(
QCPPainter *painter)
const;
2990 virtual void drawOutliers(
QCPPainter *painter)
const;
2992 friend class QCustomPlot;
3011 double data(
double key,
double value);
3012 double cell(
int keyIndex,
int valueIndex);
3015 void setSize(
int keySize,
int valueSize);
3016 void setKeySize(
int keySize);
3017 void setValueSize(
int valueSize);
3019 void setKeyRange(
const QCPRange &keyRange);
3020 void setValueRange(
const QCPRange &valueRange);
3021 void setData(
double key,
double value,
double z);
3022 void setCell(
int keyIndex,
int valueIndex,
double z);
3025 void recalculateDataBounds();
3027 void fill(
double z);
3029 void coordToCell(
double key,
double value,
int *keyIndex,
int *valueIndex)
const;
3030 void cellToCoord(
int keyIndex,
int valueIndex,
double *key,
double *value)
const;
3050 Q_PROPERTY(
QCPRange dataRange READ dataRange WRITE setDataRange NOTIFY dataRangeChanged)
3051 Q_PROPERTY(
QCPAxis::ScaleType dataScaleType READ dataScaleType WRITE setDataScaleType NOTIFY dataScaleTypeChanged)
3052 Q_PROPERTY(
QCPColorGradient gradient READ gradient WRITE setGradient NOTIFY gradientChanged)
3053 Q_PROPERTY(
bool interpolate READ interpolate WRITE setInterpolate)
3054 Q_PROPERTY(
bool tightBoundary READ tightBoundary WRITE setTightBoundary)
3055 Q_PROPERTY(
QCPColorScale* colorScale READ colorScale WRITE setColorScale)
3058 explicit QCPColorMap(QCPAxis *keyAxis, QCPAxis *valueAxis);
3072 Q_SLOT
void setDataRange(
const QCPRange &dataRange);
3075 void setInterpolate(
bool enabled);
3076 void setTightBoundary(
bool enabled);
3080 void rescaleDataRange(
bool recalculateDataBounds=
false);
3081 Q_SLOT
void updateLegendIcon(Qt::TransformationMode transformMode=Qt::SmoothTransformation,
const QSize &thumbSize=QSize(32, 18));
3085 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
3088 void dataRangeChanged(
QCPRange newRange);
3107 virtual void updateMapImage();
3115 friend class QCustomPlot;
3128 QCPFinancialData(
double key,
double open,
double high,
double low,
double close);
3129 double key,
open, high, low, close;
3149 Q_PROPERTY(
ChartStyle chartStyle READ chartStyle WRITE setChartStyle)
3150 Q_PROPERTY(
double width READ width WRITE setWidth)
3151 Q_PROPERTY(
bool twoColored READ twoColored WRITE setTwoColored)
3152 Q_PROPERTY(QBrush brushPositive READ brushPositive WRITE setBrushPositive)
3153 Q_PROPERTY(QBrush brushNegative READ brushNegative WRITE setBrushNegative)
3154 Q_PROPERTY(QPen penPositive READ penPositive WRITE setPenPositive)
3155 Q_PROPERTY(QPen penNegative READ penNegative WRITE setPenNegative)
3168 explicit
QCPFinancial(QCPAxis *keyAxis, QCPAxis *valueAxis);
3184 void setData(
const QVector<double> &key,
const QVector<double> &open,
const QVector<double> &high,
const QVector<double> &low,
const QVector<double> &close);
3185 void setChartStyle(ChartStyle style);
3186 void setWidth(
double width);
3187 void setTwoColored(
bool twoColored);
3188 void setBrushPositive(
const QBrush &brush);
3189 void setBrushNegative(
const QBrush &brush);
3190 void setPenPositive(
const QPen &pen);
3191 void setPenNegative(
const QPen &pen);
3196 void addData(
double key,
double open,
double high,
double low,
double close);
3197 void addData(
const QVector<double> &key,
const QVector<double> &open,
const QVector<double> &high,
const QVector<double> &low,
const QVector<double> &close);
3198 void removeDataBefore(
double key);
3199 void removeDataAfter(
double key);
3200 void removeData(
double fromKey,
double toKey);
3201 void removeData(
double key);
3205 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
3208 static QCPFinancialDataMap timeSeriesToOhlc(
const QVector<double> &time,
const QVector<double> &value,
double timeBinSize,
double timeBinOffset = 0);
3226 void drawOhlcPlot(
QCPPainter *painter,
const QCPFinancialDataMap::const_iterator &begin,
const QCPFinancialDataMap::const_iterator &end);
3227 void drawCandlestickPlot(
QCPPainter *painter,
const QCPFinancialDataMap::const_iterator &begin,
const QCPFinancialDataMap::const_iterator &end);
3228 double ohlcSelectTest(
const QPointF &pos,
const QCPFinancialDataMap::const_iterator &begin,
const QCPFinancialDataMap::const_iterator &end)
const;
3229 double candlestickSelectTest(
const QPointF &pos,
const QCPFinancialDataMap::const_iterator &begin,
const QCPFinancialDataMap::const_iterator &end)
const;
3230 void getVisibleDataBounds(QCPFinancialDataMap::const_iterator &lower, QCPFinancialDataMap::const_iterator &upper)
const;
3232 friend class QCustomPlot;
3241 Q_PROPERTY(QPen pen READ pen WRITE setPen)
3242 Q_PROPERTY(QPen selectedPen READ selectedPen WRITE setSelectedPen)
3249 QPen
pen()
const {
return mPen; }
3253 void setPen(
const QPen &pen);
3254 void setSelectedPen(
const QPen &pen);
3257 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
3270 double distToStraightLine(
const QVector2D &point1,
const QVector2D &vec,
const QVector2D &point)
const;
3271 QLineF getRectClippedStraightLine(
const QVector2D &point1,
const QVector2D &vec,
const QRect &rect)
const;
3272 QPen mainPen()
const;
3280 Q_PROPERTY(QPen pen READ pen WRITE setPen)
3281 Q_PROPERTY(QPen selectedPen READ selectedPen WRITE setSelectedPen)
3290 QPen
pen()
const {
return mPen; }
3296 void setPen(
const QPen &pen);
3297 void setSelectedPen(
const QPen &pen);
3302 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
3316 QLineF getRectClippedLine(
const QVector2D &start,
const QVector2D &end,
const QRect &rect)
const;
3317 QPen mainPen()
const;
3325 Q_PROPERTY(QPen pen READ pen WRITE setPen)
3326 Q_PROPERTY(QPen selectedPen READ selectedPen WRITE setSelectedPen)
3335 QPen
pen()
const {
return mPen; }
3341 void setPen(
const QPen &pen);
3342 void setSelectedPen(
const QPen &pen);
3347 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
3363 QPen mainPen()
const;
3371 Q_PROPERTY(QPen pen READ pen WRITE setPen)
3372 Q_PROPERTY(QPen selectedPen READ selectedPen WRITE setSelectedPen)
3373 Q_PROPERTY(QBrush brush READ brush WRITE setBrush)
3374 Q_PROPERTY(QBrush selectedBrush READ selectedBrush WRITE setSelectedBrush)
3381 QPen
pen()
const {
return mPen; }
3387 void setPen(
const QPen &pen);
3388 void setSelectedPen(
const QPen &pen);
3389 void setBrush(
const QBrush &brush);
3390 void setSelectedBrush(
const QBrush &brush);
3393 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
3405 enum AnchorIndex {aiTop, aiTopRight, aiRight, aiBottom, aiBottomLeft, aiLeft};
3416 QPen mainPen()
const;
3417 QBrush mainBrush()
const;
3425 Q_PROPERTY(QColor color READ color WRITE setColor)
3426 Q_PROPERTY(QColor selectedColor READ selectedColor WRITE setSelectedColor)
3427 Q_PROPERTY(QPen pen READ pen WRITE setPen)
3428 Q_PROPERTY(QPen selectedPen READ selectedPen WRITE setSelectedPen)
3429 Q_PROPERTY(QBrush brush READ brush WRITE setBrush)
3430 Q_PROPERTY(QBrush selectedBrush READ selectedBrush WRITE setSelectedBrush)
3431 Q_PROPERTY(QFont font READ font WRITE setFont)
3432 Q_PROPERTY(QFont selectedFont READ selectedFont WRITE setSelectedFont)
3433 Q_PROPERTY(QString text READ text WRITE setText)
3434 Q_PROPERTY(Qt::Alignment positionAlignment READ positionAlignment WRITE setPositionAlignment)
3435 Q_PROPERTY(Qt::Alignment textAlignment READ textAlignment WRITE setTextAlignment)
3436 Q_PROPERTY(
double rotation READ rotation WRITE setRotation)
3437 Q_PROPERTY(QMargins padding READ padding WRITE setPadding)
3446 QPen
pen()
const {
return mPen; }
3450 QFont
font()
const {
return mFont; }
3452 QString
text()
const {
return mText; }
3459 void setColor(
const QColor &color);
3460 void setSelectedColor(
const QColor &color);
3461 void setPen(
const QPen &pen);
3462 void setSelectedPen(
const QPen &pen);
3463 void setBrush(
const QBrush &brush);
3464 void setSelectedBrush(
const QBrush &brush);
3465 void setFont(
const QFont &font);
3466 void setSelectedFont(
const QFont &font);
3467 void setText(
const QString &text);
3468 void setPositionAlignment(Qt::Alignment alignment);
3469 void setTextAlignment(Qt::Alignment alignment);
3470 void setRotation(
double degrees);
3471 void setPadding(
const QMargins &padding);
3474 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
3487 enum AnchorIndex {aiTopLeft, aiTop, aiTopRight, aiRight, aiBottomRight, aiBottom, aiBottomLeft, aiLeft};
3505 QPointF getTextDrawPoint(
const QPointF &pos,
const QRectF &rect, Qt::Alignment positionAlignment)
const;
3506 QFont mainFont()
const;
3507 QColor mainColor()
const;
3508 QPen mainPen()
const;
3509 QBrush mainBrush()
const;
3517 Q_PROPERTY(QPen pen READ pen WRITE setPen)
3518 Q_PROPERTY(QPen selectedPen READ selectedPen WRITE setSelectedPen)
3519 Q_PROPERTY(QBrush brush READ brush WRITE setBrush)
3520 Q_PROPERTY(QBrush selectedBrush READ selectedBrush WRITE setSelectedBrush)
3527 QPen
pen()
const {
return mPen; }
3533 void setPen(
const QPen &pen);
3534 void setSelectedPen(
const QPen &pen);
3535 void setBrush(
const QBrush &brush);
3536 void setSelectedBrush(
const QBrush &brush);
3539 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
3554 enum AnchorIndex {aiTopLeftRim, aiTop, aiTopRightRim, aiRight, aiBottomRightRim, aiBottom, aiBottomLeftRim, aiLeft, aiCenter};
3565 QPen mainPen()
const;
3566 QBrush mainBrush()
const;
3574 Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap)
3575 Q_PROPERTY(
bool scaled READ scaled WRITE setScaled)
3576 Q_PROPERTY(Qt::AspectRatioMode aspectRatioMode READ aspectRatioMode)
3577 Q_PROPERTY(Qt::TransformationMode transformationMode READ transformationMode)
3578 Q_PROPERTY(QPen pen READ pen WRITE setPen)
3579 Q_PROPERTY(QPen selectedPen READ selectedPen WRITE setSelectedPen)
3590 QPen
pen()
const {
return mPen; }
3594 void setPixmap(
const QPixmap &pixmap);
3595 void setScaled(
bool scaled, Qt::AspectRatioMode aspectRatioMode=Qt::KeepAspectRatio, Qt::TransformationMode transformationMode=Qt::SmoothTransformation);
3596 void setPen(
const QPen &pen);
3597 void setSelectedPen(
const QPen &pen);
3600 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
3612 enum AnchorIndex {aiTop, aiTopRight, aiRight, aiBottom, aiBottomLeft, aiLeft};
3628 void updateScaledPixmap(QRect finalRect=QRect(),
bool flipHorz=
false,
bool flipVert=
false);
3629 QRect getFinalRect(
bool *flippedHorz=0,
bool *flippedVert=0)
const;
3630 QPen mainPen()
const;
3638 Q_PROPERTY(QPen pen READ pen WRITE setPen)
3639 Q_PROPERTY(QPen selectedPen READ selectedPen WRITE setSelectedPen)
3640 Q_PROPERTY(QBrush brush READ brush WRITE setBrush)
3641 Q_PROPERTY(QBrush selectedBrush READ selectedBrush WRITE setSelectedBrush)
3642 Q_PROPERTY(
double size READ size WRITE setSize)
3643 Q_PROPERTY(
TracerStyle style READ style WRITE setStyle)
3644 Q_PROPERTY(
QCPGraph* graph READ graph WRITE setGraph)
3645 Q_PROPERTY(
double graphKey READ graphKey WRITE setGraphKey)
3646 Q_PROPERTY(
bool interpolating READ interpolating WRITE setInterpolating)
3660 Q_ENUMS(TracerStyle)
3666 QPen pen()
const {
return mPen; }
3670 double size()
const {
return mSize; }
3677 void setPen(
const QPen &pen);
3678 void setSelectedPen(
const QPen &pen);
3679 void setBrush(
const QBrush &brush);
3680 void setSelectedBrush(
const QBrush &brush);
3681 void setSize(
double size);
3682 void setStyle(TracerStyle style);
3684 void setGraphKey(
double key);
3685 void setInterpolating(
bool enabled);
3688 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
3691 void updatePosition();
3709 QPen mainPen()
const;
3710 QBrush mainBrush()
const;
3718 Q_PROPERTY(QPen pen READ pen WRITE setPen)
3719 Q_PROPERTY(QPen selectedPen READ selectedPen WRITE setSelectedPen)
3720 Q_PROPERTY(
double length READ length WRITE setLength)
3721 Q_PROPERTY(
BracketStyle style READ style WRITE setStyle)
3734 QPen
pen()
const {
return mPen; }
3740 void setPen(
const QPen &pen);
3741 void setSelectedPen(
const QPen &pen);
3742 void setLength(
double length);
3743 void setStyle(BracketStyle style);
3746 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
3764 QPen mainPen()
const;
3767 #endif // QCUSTOMPLOT_H
static const double maxRange
QPointer< QCPAxisRect > mClipAxisRect
bool rangeReversed() const
bool tightBoundary() const
A layout element displaying a plot title text.
QList< QCPLayer * > mLayers
virtual void wheelEvent(QWheelEvent *event)
QCPItemPosition *const topLeft
bool mGradientImageInvalidated
virtual QCP::Interaction selectionCategory() const
QPen selectedBorderPen() const
virtual bool take(QCPLayoutElement *element)=0
bool antialiasedScatters() const
QCP::MarginSides mAutoMargins
QList< QCPItemPosition * > mPositions
Manages the position of an item.
QCPItemAnchor *const right
QCPItemAnchor *const topRightRim
QPainterPath customPath() const
QCPItemPosition *const topLeft
QCPRange & operator-=(const double &value)
QCPAxis::ScaleType dataScaleType() const
QCPAxis::AxisType type() const
QCPItemAnchor *const bottomLeft
QCPBarDataMap * data() const
QBrush selectedBrush() const
virtual void applyDefaultAntialiasingHint(QCPPainter *painter) const
QCustomPlot * parentPlot() const
QPixmap mBackgroundPixmap
QList< QCPItemAnchor * > anchors() const
QMap< double, QCPData > QCPDataMap
0x004 axis (tick) labels will be cached as pixmaps, increasing replot performance.
QList< QCPGraph * > mGraphs
QCPColorGradient mGradient
WidthType widthType() const
virtual void mousePressEvent(QMouseEvent *event)
QCPColorScale * colorScale() const
bool antialiasedSubGrid() const
The abstract base class for layouts.
Qt::Orientation mOrientation
QCPLegend * parentLegend() const
bool noAntialiasingOnDrag() const
QList< QCPLayoutElement * > mElements
QCPRange & operator/=(const double &value)
Qt::KeyboardModifier mMultiSelectModifier
QCPAxis * valueAxis() const
A curved line from one point to another.
QCPItemAnchor *const bottomLeftRim
QCPBarsGroup * barsGroup() const
QHash< QCPAxis::AxisType, QList< QCPAxis * > > mAxes
virtual QCPItemPosition * toQCPItemPosition()
QFont selectedFont() const
QCPItemAnchor * mParentAnchorY
Represents the range an axis is encompassing.
QCPAxis::ScaleType mDataScaleType
QCPAxisPainterPrivate * mAxisPainter
PositionType type() const
QCPScatterStyle mOutlierStyle
QBrush selectedBrush() const
0x0200 Borders of fills (e.g. under or between graphs)
QFont selectedFont() const
QCPAxis * keyAxis() const
0x004 The user can select multiple objects by holding the modifier set by QCustomPlot::setMultiSelect...
QCPItemPosition *const position
Qt::AspectRatioMode aspectRatioMode() const
A straight line that spans infinitely in both directions.
QCP::Interactions mInteractions
QCPItemPosition *const topLeft
Qt::AspectRatioMode mAspectRatioMode
QFont selectedFont() const
bool mColorBufferInvalidated
Qt::Orientation orientation() const
QCPBars * barBelow() const
QLatin1Char mNumberFormatChar
QPointer< QCPColorScaleAxisRectPrivate > mAxisRect
0x008 Plottables are selectable (e.g. graphs, curves, bars,... see QCPAbstractPlottable) ...
QCPRange dataBounds() const
Holds the data of one single data point for QCPCurve.
QColor selectedTickLabelColor() const
QCPLineEnding tail() const
bool mAntialiasedScatters
QBrush selectedBrush() const
virtual double selectTest(const QPointF &pos, bool onlySelectable, QVariant *details=0) const =0
QColor selectedLabelColor() const
QFont selectedFont() const
QCustomPlot * mParentPlot
QCPGraph * channelFillGraph() const
QHash< QCP::MarginSide, QList< QCPLayoutElement * > > mChildren
Qt::AspectRatioMode backgroundScaledMode() const
QCache< QString, CachedLabel > mLabelCache
0x0001 Axis base line and tick marks
SelectableParts selectedParts() const
QCPScatterStyle mScatterStyle
Represents the visual appearance of scatter points.
QCPItemAnchor *const topLeft
virtual void draw(QCPPainter *painter)=0
QCPRange dataRange() const
QCPRange & operator+=(const double &value)
QCPItemAnchor *const left
virtual double selectTest(const QPointF &pos, bool onlySelectable, QVariant *details=0) const
QCPAbstractPlottable * mPlottable
QBrush selectedBrush() const
QCPItemAnchor *const center
virtual void mouseDoubleClickEvent(QMouseEvent *event)
QColor mSelectedLabelColor
int selectionTolerance() const
QCPItemAnchor *const bottom
A plottable representing a single statistical box in a plot.
LineStyle lineStyle() const
QColor labelColor() const
bool clipToAxisRect() const
QCPItemAnchor *const right
bool errorBarSkipSymbol() const
0x040 Items are selectable (Rectangles, Arrows, Textitems, etc. see QCPAbstractItem) ...
QCPAxisRect * axisRect() const
virtual void update(UpdatePhase phase)
QPointer< QCPColorScale > mColorScale
void drawLine(const QPointF &p1, const QPointF &p2)
QCP::AntialiasedElements mNotAntialiasedElements
QCP::AntialiasedElements mNotAADragBackup
QCPItemAnchor *const bottomLeft
bool backgroundScaled() const
Q_DECLARE_TYPEINFO(QCPScatterStyle, Q_MOVABLE_TYPE)
virtual void mousePressEvent(QMouseEvent *event)
Qt::KeyboardModifier multiSelectModifier() const
PositionType typeY() const
bool mNoAntialiasingOnDrag
virtual void deselectEvent(bool *selectionStateChanged)
A layer that may contain objects, to control the rendering order.
virtual int calculateAutoMargin(QCP::MarginSide side)
Handles the different ending decorations for line-like items.
bool mScaledPixmapInvalidated
QCPItemAnchor *const right
QMutableMapIterator< double, QCPBarData > QCPBarDataMutableMapIterator
Responsible for drawing the grid of a QCPAxis.
QCPAbstractPlottable * plottable()
ScaleType scaleType() const
QPixmap background() const
QCPLayoutInset * insetLayout() const
Qt::Alignment textAlignment() const
QCPAxis::LabelSide tickLabelSide
QCPLayoutInset * mInsetLayout
QCPLayoutGrid * plotLayout() const
QCPLegend * mParentLegend
QPointer< QCPLayoutElement > mMouseEventElement
bool subGridVisible() const
QCPLayout * mParentLayout
QCPRange & operator*=(const double &value)
PositionType mPositionTypeY
virtual void wheelEvent(QWheelEvent *event)
0x0400 Zero-lines, see QCPGrid::setZeroLinePen
QList< QCPLayerable * > mChildren
QStack< bool > mAntialiasingStack
QList< QCPAbstractItem * > mItems
Defines a color gradient for use with e.g. QCPColorMap.
QRect tickLabelsSelectionBox() const
QVector< QString > tickLabels
QMargins minimumMargins() const
QVector< double > tickPositions
LabelType tickLabelType() const
QList< QCPLayerable * > children() const
QList< QCPLayoutElement * > elements(QCP::MarginSide side) const
QCPItemAnchor *const right
QHash< QCP::MarginSide, QCPMarginGroup * > marginGroups() const
bool antialiasedErrorBars() const
virtual void mouseReleaseEvent(QMouseEvent *event)
BracketStyle style() const
Qt::Orientations rangeZoom() const
QList< double > columnStretchFactors() const
The central class of the library. This is the QWidget which displays the plot and interacts with the ...
void rescaleKeyAxis(bool onlyEnlarge=false) const
static Qt::Orientation orientation(AxisType type)
QSize maximumSize() const
virtual void clearData()=0
virtual QSize maximumSizeHint() const
QColor selectedTextColor() const
QCPColorGradient gradient() const
QCustomPlot * mParentPlot
QCPFinancialDataMap * mData
ColorInterpolation mColorInterpolation
QFont selectedLabelFont() const
double errorBarSize() const
0x0040 Main lines of items
QVector< double > outliers() const
QColor selectedColor() const
QPen mSelectedIconBorderPen
Holds the data of one single data point (one bar) for QCPBars.
Qt::Orientations rangeDrag() const
int getMarginValue(const QMargins &margins, QCP::MarginSide side)
QPointer< QCPAxis > mColorAxis
Manages a legend inside a QCustomPlot.
Qt::TransformationMode transformationMode() const
QCPLayoutGrid * mPlotLayout
QCPColorGradient mGradient
QList< Qt::Alignment > mInsetAlignment
QCPItemPosition *const right
QSet< QCPItemPosition * > mChildrenY
void setMarginValue(QMargins &margins, QCP::MarginSide side, int value)
virtual QCPItemPosition * toQCPItemPosition()
Qt::TimeSpec mDateTimeSpec
QCPItemAnchor *const bottomLeft
QList< QCPBars * > bars() const
QCP::AntialiasedElements notAntialiasedElements() const
QCPLineEnding tail() const
QCPRange dataRange() const
A layout that arranges child elements in a grid.
ErrorType errorType() const
0x0020 Main lines of plottables (excluding error bars, see element aeErrorBars)
bool mMapImageInvalidated
virtual QSize minimumSizeHint() const
int iconTextPadding() const
QCPRange valueRange() const
QCP::PlottingHints plottingHints() const
SelectableParts selectableParts() const
QPainter subclass used internally.
The abstract base class for all objects that form the layout system.
QFont selectedTickLabelFont() const
TracerStyle style() const
QBrush brushPositive() const
QMap< double, QCPBarData > QCPBarDataMap
QCPAxis::ScaleType mDataScaleType
Holds multiple axes and arranges them in a rectangular shape.
QList< double > rowStretchFactors() const
QVector< double > mOutliers
Qt::AspectRatioMode backgroundScaledMode() const
virtual double selectTest(const QPointF &pos, bool onlySelectable, QVariant *details=0) const
QCPItemPosition *const left
QBrush brushNegative() const
QPoint bottomRight() const
QCustomPlot * mParentPlot
double lowerQuartile() const
QPen whiskerBarPen() const
A color scale for use with color coding data such as QCPColorMap.
SelectableParts mSelectedParts
bool mAntialiasedZeroLine
QCPBars * barAbove() const
Groups multiple QCPBars together so they appear side by side.
QMutableMapIterator< double, QCPData > QCPDataMutableMapIterator
QCPColorScale * mParentColorScale
bool operator==(const QCPRange &other) const
QCPItemPosition *const endDir
Whether to use immediate repaint or queued update depends on whether the plotting hint QCP::phForceRe...
bool autoTickLabels() const
A bracket for referencing/highlighting certain parts in the plot.
QRect mTickLabelsSelectionBox
QCPRange mDragStartVertRange
The abstract base class for all entries in a QCPLegend.
virtual QCPRange getValueRange(bool &foundRange, SignDomain inSignDomain=sdBoth) const =0
Qt::AspectRatioMode mBackgroundScaledMode
Holds the data of one single data point for QCPGraph.
double whiskerWidth() const
bool adaptiveSampling() const
LineStyle lineStyle() const
QCPAxis::ScaleType dataScaleType() const
QColor mSelectedTextColor
QVector< double > mSubTickVector
int numberPrecision() const
A plottable representing a parametric curve in a plot.
QCPRange keyRange() const
QMap< double, QColor > mColorStops
A legend item representing a plottable with an icon and the plottable name.
QCPItemAnchor *const left
Qt::Alignment positionAlignment() const
QVector< QRgb > mColorBuffer
virtual void selectEvent(QMouseEvent *event, bool additive, const QVariant &details, bool *selectionStateChanged)
QString dateTimeFormat() const
0x080 All other objects are selectable (e.g. your own derived layerables, the plot title...
QCustomPlot * mParentPlot
QList< QCPItemAnchor * > mAnchors
0x001 Axis ranges are draggable (see QCPAxisRect::setRangeDrag, QCPAxisRect::setRangeDragAxes) ...
QCPColorMapData * mMapData
virtual int elementCount() const =0
Qt::Alignment mPositionAlignment
QCPAxis * keyAxis() const
bool isInvalidData(double value)
QPointer< QCPAxis > mValueAxis
QFont tickLabelFont() const
Manages a single axis inside a QCustomPlot.
QCPLineEnding upperEnding
QCPLineEnding head() const
QCPItemAnchor *const topRight
QVector< QString > tickVectorLabels() const
QMap< double, QCPFinancialData > QCPFinancialDataMap
SelectableParts selectableParts() const
virtual void mouseMoveEvent(QMouseEvent *event)
bool interpolating() const
QCPItemAnchor *const center
Item that sticks to QCPGraph data points.
QCPItemPosition *const end
QMapIterator< double, QCPBarData > QCPBarDataMapIterator
QCPItemAnchor *const topRight
QVector< double > tickVector() const
virtual int calculateAutoMargin(QCP::MarginSide side)
QCPItemPosition *const start
QHash< QCP::MarginSide, QCPMarginGroup * > mMarginGroups
QColor selectedTextColor() const
virtual void drawLegendIcon(QCPPainter *painter, const QRectF &rect) const =0
bool backgroundScaled() const
QCPItemPosition *const bottomRight
QPoint bottomLeft() const
QColor tickLabelColor() const
QCPItemPosition *const start
const QCPRange range() const
QCPItemAnchor *const topLeftRim
QCPCurveDataMap * data() const
bool autoSubTicks() const
A margin group allows synchronization of margin sides if working with multiple layout elements...
bool isPenDefined() const
0x0080 Scatter symbols of plottables (excluding scatter symbols of type ssPixmap) ...
QCPMarginGroup * marginGroup(QCP::MarginSide side) const
void rescaleValueAxis(bool onlyEnlarge=false) const
QPointer< QCPGraph > mChannelFillGraph
QPen iconBorderPen() const
QColor selectedTextColor() const
const QCP::Interactions interactions() const
double mScaleLogBaseLogInv
QList< QList< QCPLayoutElement * > > mElements
An anchor of an item to which positions can be attached to.
bool antialiasedZeroLine() const
QList< QCPAbstractPlottable * > mPlottables
The abstract base class for all items in a plot.
QCPItemAnchor *const bottomRight
QPointer< QCPAxis > mValueAxis
virtual void draw(QCPPainter *painter)
virtual void parentPlotInitialized(QCustomPlot *parentPlot)
QCPScatterStyle mScatterStyle
QMapIterator< double, QCPData > QCPDataMapIterator
QMapIterator< double, QCPFinancialData > QCPFinancialDataMapIterator
SelectableParts mSelectedParts
QList< InsetPlacement > mInsetPlacement
QPixmap mScaledBackgroundPixmap
Qt::TransformationMode mTransformationMode
QPen selectedTickPen() const
double mRangeZoomFactorVert
QCPItemAnchor * parentAnchorY() const
QVector< QString > mTickVectorLabels
QPointer< QCPLayerable > mParentLayerable
Qt::Alignment mTextAlignment
QRect labelSelectionBox() const
QCPItemPosition *const position
A layout that places child elements aligned to the border or arbitrarily positioned.
QPen selectedIconBorderPen() const
QMutableMapIterator< double, QCPFinancialData > QCPFinancialDataMutableMapIterator
QColor mSelectedTextColor
static const double minRange
QCPItemPosition *const point1
QPixmap background() const
PositionType typeX() const
QCustomPlot * mParentPlot
virtual void mouseMoveEvent(QMouseEvent *event)
A plottable representing a bar chart in a plot.
virtual void draw(QCPPainter *painter)=0
QCP::PlottingHints mPlottingHints
PainterModes modes() const
QMap< double, QColor > colorStops() const
bool contains(QCPBars *bars) const
QPixmap mBackgroundPixmap
QCPItemAnchor *const topRight
virtual void updateLayout()
Base class for all drawable objects.
ChartStyle chartStyle() const
QCPItemPosition *const end
QBrush selectedBrush() const
QSize minimumSize() const
QRect axisSelectionBox() const
double upperQuartile() const
QVector< double > mTickVector
bool abbreviateDecimalPowers
double scaleLogBase() const
virtual void draw(QCPPainter *painter)=0
QCPItemAnchor * parentAnchorX() const
QCP::AntialiasedElements antialiasedElements() const
Qt::Orientations mRangeZoom
const QCPRange operator*(const QCPRange &range, double value)
EndingStyle style() const
QCPItemPosition *const startDir
virtual QSize minimumSizeHint() const
QCPScatterStyle outlierStyle() const
bool autoTickStep() const
QCPScatterStyle scatterStyle() const
QCP::MarginSides autoMargins() const
A plottable representing a graph in a plot.
bool antialiasedFill() const
virtual void applyDefaultAntialiasingHint(QCPPainter *painter) const =0
bool mNumberBeautifulPowers
virtual double selectTest(const QPointF &pos, bool onlySelectable, QVariant *details=0) const =0
virtual QCPLayoutElement * elementAt(int index) const =0
virtual QCPRange getKeyRange(bool &foundRange, SignDomain inSignDomain=sdBoth) const =0
QCPDataMap * data() const
QCPItemAnchor *const bottom
QList< QCPItemPosition * > positions() const
Holds the two-dimensional data of a QCPColorMap plottable.
QPointer< QCPAxis > mRangeZoomVertAxis
The abstract base class for all data representing objects in a plot.
QPointer< QCPBars > mBarBelow
Qt::AspectRatioMode mBackgroundScaledMode
bool autoAddPlottableToLegend() const
QMutableMapIterator< double, QCPCurveData > QCPCurveDataMutableMapIterator
virtual QCPLayoutElement * takeAt(int index)=0
QVector< double > subTickPositions
0x002 Axis ranges are zoomable with the mouse wheel (see QCPAxisRect::setRangeZoom, QCPAxisRect::setRangeZoomAxes)
QCustomPlot * mParentPlot
virtual QList< QCPLayoutElement * > elements(bool recursive) const
0x010 Axes are selectable (or parts of them, see QCPAxis::setSelectableParts)
virtual QPointF anchorPixelPoint(int anchorId) const
QCPLayerable * parentLayerable() const
QCPItemPosition *const point2
QCPItemAnchor * parentAnchor() const
QCPItemAnchor *const left
QByteArray mLabelParameterHash
A plottable representing a financial stock chart.
QPen selectedSubTickPen() const
int columnSpacing() const
virtual void mouseReleaseEvent(QMouseEvent *event)
A plottable representing a two-dimensional color map in a plot.
QPen selectedBasePen() const
const QCPRange operator-(const QCPRange &range, double value)
virtual QRect clipRect() const
QColor mSelectedTextColor
QCPItemAnchor *const bottom
QCPAxis * valueAxis() const
QList< double > mColumnStretchFactors
ColorInterpolation colorInterpolation() const
QCPItemAnchor *const bottomRightRim
QList< QRectF > mInsetRect
ScatterShape shape() const
QCustomPlot * parentPlot() const
QBrush selectedBrush() const
bool mAutoAddPlottableToLegend
bool operator!=(const QCPRange &other) const
QMap< double, QCPCurveData > QCPCurveDataMap
virtual void update(UpdatePhase phase)
void rescaleAxes(bool onlyEnlarge=false) const
0x020 Legends are selectable (or their child items, see QCPLegend::setSelectableParts) ...
const QCPRange operator/(const QCPRange &range, double value)
A line from one point to another.
QCPItemPosition *const bottomRight
Holds the data of one single data point for QCPFinancial.
SpacingType spacingType() const
Qt::TimeSpec dateTimeSpec() const
QPixmap mScaledBackgroundPixmap
QCPScatterStyle scatterStyle() const
int autoTickCount() const
QPointer< QCPAxisRect > mAxisRect
QCPItemAnchor *const left
QCPLineEnding head() const
const QCPRange operator+(const QCPRange &range, double value)
QCPItemPosition *const bottomRight
QCPAbstractItem * mParentItem
QMapIterator< double, QCPCurveData > QCPCurveDataMapIterator
QCPColorGradient gradient() const
QList< double > mRowStretchFactors
QCPColorMapData * data() const
QImage mUndersampledMapImage
QCPBarsGroup * mBarsGroup
QCPItemAnchor *const bottom