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 172 inline
bool isInvalidData(
double value)
174 return qIsNaN(value) || qIsInf(value);
182 inline bool isInvalidData(
double value1,
double value2)
184 return isInvalidData(value1) || isInvalidData(value2);
193 inline void setMarginValue(QMargins &margins,
QCP::MarginSide side,
int value)
199 case QCP::msTop: margins.setTop(value);
break;
201 case QCP::msAll: margins = QMargins(value, value, value, value);
break;
213 inline int getMarginValue(
const QMargins &margins,
QCP::MarginSide side)
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)
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; }
280 QPainterPath customPath()
const {
return mCustomPath; }
283 void setSize(
double size);
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; }
292 bool isPenDefined()
const {
return mPenDefined; }
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;
304 QPainterPath mCustomPath;
323 ,pmNonCosmetic = 0x04
329 QCPPainter(QPaintDevice *device);
333 bool antialiasing()
const {
return testRenderHint(QPainter::Antialiasing); }
334 PainterModes modes()
const {
return mModes; }
337 void setAntialiasing(
bool enabled);
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);
347 void drawLine(
const QPointF &p1,
const QPointF &p2) {drawLine(QLineF(p1, p2));}
352 void makeNonCosmetic();
357 bool mIsAntialiasing;
360 QStack<bool> mAntialiasingStack;
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)
380 QCustomPlot *parentPlot()
const {
return mParentPlot; }
381 QString name()
const {
return mName; }
382 int index()
const {
return mIndex; }
383 QList<QCPLayerable*> children()
const {
return mChildren; }
384 bool visible()
const {
return mVisible; }
387 void setVisible(
bool visible);
394 QList<QCPLayerable*> mChildren;
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)
423 bool visible()
const {
return mVisible; }
424 QCustomPlot *parentPlot()
const {
return mParentPlot; }
425 QCPLayerable *parentLayerable()
const {
return mParentLayerable.data(); }
426 QCPLayer *layer()
const {
return mLayer; }
427 bool antialiased()
const {
return mAntialiased; }
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);
448 QPointer<QCPLayerable> mParentLayerable;
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);
465 bool moveToLayer(
QCPLayer *layer,
bool prepend);
482 QCPRange(
double lower,
double upper);
484 bool operator==(
const QCPRange& other)
const {
return lower == other.lower && upper == other.upper; }
485 bool operator!=(
const QCPRange& other)
const {
return !(*
this == other); }
499 double center()
const;
501 void expand(
const QCPRange &otherRange);
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);
509 static const double minRange;
510 static const double maxRange;
513 Q_DECLARE_TYPEINFO(
QCPRange, Q_MOVABLE_TYPE);
608 QList<QCPLayoutElement*> elements(
QCP::MarginSide side)
const {
return mChildren.value(side); }
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)
656 QCPLayout *layout()
const {
return mParentLayout; }
657 QRect rect()
const {
return mRect; }
658 QRect outerRect()
const {
return mOuterRect; }
659 QMargins margins()
const {
return mMargins; }
660 QMargins minimumMargins()
const {
return mMinimumMargins; }
661 QCP::MarginSides autoMargins()
const {
return mAutoMargins; }
662 QSize minimumSize()
const {
return mMinimumSize; }
663 QSize maximumSize()
const {
return mMaximumSize; }
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);
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;
690 QSize mMinimumSize, mMaximumSize;
691 QRect mRect, mOuterRect;
692 QMargins mMargins, mMinimumMargins;
693 QCP::MarginSides mAutoMargins;
694 QHash<QCP::MarginSide, QCPMarginGroup*> mMarginGroups;
699 virtual void mousePressEvent(QMouseEvent *event) {Q_UNUSED(event)}
700 virtual void mouseMoveEvent(QMouseEvent *event) {Q_UNUSED(event)}
701 virtual void mouseReleaseEvent(QMouseEvent *event) {Q_UNUSED(event)}
702 virtual void mouseDoubleClickEvent(QMouseEvent *event) {Q_UNUSED(event)}
703 virtual void wheelEvent(QWheelEvent *event) {Q_UNUSED(event)}
706 virtual void applyDefaultAntialiasingHint(
QCPPainter *painter)
const { Q_UNUSED(painter) }
707 virtual void draw(
QCPPainter *painter) { Q_UNUSED(painter) }
708 virtual void parentPlotInitialized(
QCustomPlot *parentPlot);
727 virtual QList<QCPLayoutElement*> elements(
bool recursive)
const;
730 virtual int elementCount()
const = 0;
734 virtual void simplify();
737 bool removeAt(
int index);
743 virtual void updateLayout();
746 void sizeConstraintsChanged()
const;
749 QVector<int> getSectionSizes(QVector<int> maxSizes, QVector<int> minSizes, QVector<double> stretchFactors,
int totalSize)
const;
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;
775 QList<double> columnStretchFactors()
const {
return mColumnStretchFactors; }
776 QList<double> rowStretchFactors()
const {
return mRowStretchFactors; }
777 int columnSpacing()
const {
return mColumnSpacing; }
778 int rowSpacing()
const {
return mRowSpacing; }
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;
794 virtual QList<QCPLayoutElement*> elements(
bool recursive)
const;
795 virtual void simplify();
796 virtual QSize minimumSizeHint()
const;
797 virtual QSize maximumSizeHint()
const;
802 bool hasElement(
int row,
int column);
803 void expandTo(
int newRowCount,
int newColumnCount);
804 void insertRow(
int newIndex);
805 void insertColumn(
int newIndex);
809 QList<QList<QCPLayoutElement*> > mElements;
810 QList<double> mColumnStretchFactors;
811 QList<double> mRowStretchFactors;
812 int mColumnSpacing, mRowSpacing;
815 void getMinimumRowColSizes(QVector<int> *minColWidths, QVector<int> *minRowHeights)
const;
816 void getMaximumRowColSizes(QVector<int> *maxColWidths, QVector<int> *maxRowHeights)
const;
839 Qt::Alignment insetAlignment(
int index)
const;
840 QRectF insetRect(
int index)
const;
844 void setInsetAlignment(
int index, Qt::Alignment alignment);
845 void setInsetRect(
int index,
const QRectF &rect);
848 virtual void updateLayout();
849 virtual int elementCount()
const;
853 virtual void simplify() {}
854 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
862 QList<QCPLayoutElement*> mElements;
863 QList<InsetPlacement> mInsetPlacement;
864 QList<Qt::Alignment> mInsetAlignment;
865 QList<QRectF> mInsetRect;
905 double width()
const {
return mWidth; }
906 double length()
const {
return mLength; }
907 bool inverted()
const {
return mInverted; }
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;
924 double mWidth, mLength;
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)
945 bool subGridVisible()
const {
return mSubGridVisible; }
946 bool antialiasedSubGrid()
const {
return mAntialiasedSubGrid; }
947 bool antialiasedZeroLine()
const {
return mAntialiasedZeroLine; }
948 QPen pen()
const {
return mPen; }
949 QPen subGridPen()
const {
return mSubGridPen; }
950 QPen zeroLinePen()
const {
return mZeroLinePen; }
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);
962 bool mSubGridVisible;
963 bool mAntialiasedSubGrid, mAntialiasedZeroLine;
964 QPen mPen, mSubGridPen, mZeroLinePen;
969 virtual void applyDefaultAntialiasingHint(
QCPPainter *painter)
const;
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)
1048 Q_DECLARE_FLAGS(AxisTypes,
AxisType)
1082 ,spTickLabels = 0x002
1083 ,spAxisLabel = 0x004
1092 AxisType axisType()
const {
return mAxisType; }
1093 QCPAxisRect *axisRect()
const {
return mAxisRect; }
1094 ScaleType scaleType()
const {
return mScaleType; }
1095 double scaleLogBase()
const {
return mScaleLogBase; }
1096 const QCPRange range()
const {
return mRange; }
1097 bool rangeReversed()
const {
return mRangeReversed; }
1098 bool autoTicks()
const {
return mAutoTicks; }
1099 int autoTickCount()
const {
return mAutoTickCount; }
1100 bool autoTickLabels()
const {
return mAutoTickLabels; }
1101 bool autoTickStep()
const {
return mAutoTickStep; }
1102 bool autoSubTicks()
const {
return mAutoSubTicks; }
1103 bool ticks()
const {
return mTicks; }
1104 bool tickLabels()
const {
return mTickLabels; }
1105 int tickLabelPadding()
const;
1106 LabelType tickLabelType()
const {
return mTickLabelType; }
1107 QFont tickLabelFont()
const {
return mTickLabelFont; }
1108 QColor tickLabelColor()
const {
return mTickLabelColor; }
1109 double tickLabelRotation()
const;
1111 QString dateTimeFormat()
const {
return mDateTimeFormat; }
1112 Qt::TimeSpec dateTimeSpec()
const {
return mDateTimeSpec; }
1113 QString numberFormat()
const;
1114 int numberPrecision()
const {
return mNumberPrecision; }
1115 double tickStep()
const {
return mTickStep; }
1116 QVector<double> tickVector()
const {
return mTickVector; }
1117 QVector<QString> tickVectorLabels()
const {
return mTickVectorLabels; }
1118 int tickLengthIn()
const;
1119 int tickLengthOut()
const;
1120 int subTickCount()
const {
return mSubTickCount; }
1121 int subTickLengthIn()
const;
1122 int subTickLengthOut()
const;
1123 QPen basePen()
const {
return mBasePen; }
1124 QPen tickPen()
const {
return mTickPen; }
1125 QPen subTickPen()
const {
return mSubTickPen; }
1126 QFont labelFont()
const {
return mLabelFont; }
1127 QColor labelColor()
const {
return mLabelColor; }
1128 QString label()
const {
return mLabel; }
1129 int labelPadding()
const;
1130 int padding()
const {
return mPadding; }
1132 SelectableParts selectedParts()
const {
return mSelectedParts; }
1133 SelectableParts selectableParts()
const {
return mSelectableParts; }
1134 QFont selectedTickLabelFont()
const {
return mSelectedTickLabelFont; }
1135 QFont selectedLabelFont()
const {
return mSelectedLabelFont; }
1136 QColor selectedTickLabelColor()
const {
return mSelectedTickLabelColor; }
1137 QColor selectedLabelColor()
const {
return mSelectedLabelColor; }
1138 QPen selectedBasePen()
const {
return mSelectedBasePen; }
1139 QPen selectedTickPen()
const {
return mSelectedTickPen; }
1140 QPen selectedSubTickPen()
const {
return mSelectedSubTickPen; }
1143 QCPGrid *grid()
const {
return mGrid; }
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);
1163 void setTickLabelFont(
const QFont &font);
1164 void setTickLabelColor(
const QColor &color);
1165 void setTickLabelRotation(
double degrees);
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;
1206 Qt::Orientation orientation()
const {
return mOrientation; }
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;
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; }
1223 void ticksRequest();
1224 void rangeChanged(
const QCPRange &newRange);
1227 void selectionChanged(
const QCPAxis::SelectableParts &parts);
1228 void selectableChanged(
const QCPAxis::SelectableParts &parts);
1237 Qt::Orientation mOrientation;
1238 SelectableParts mSelectableParts, mSelectedParts;
1239 QPen mBasePen, mSelectedBasePen;
1244 QFont mLabelFont, mSelectedLabelFont;
1245 QColor mLabelColor, mSelectedLabelColor;
1248 bool mTickLabels, mAutoTickLabels;
1251 QFont mTickLabelFont, mSelectedTickLabelFont;
1252 QColor mTickLabelColor, mSelectedTickLabelColor;
1253 QString mDateTimeFormat;
1254 Qt::TimeSpec mDateTimeSpec;
1255 int mNumberPrecision;
1256 QLatin1Char mNumberFormatChar;
1257 bool mNumberBeautifulPowers;
1262 int mSubTickCount, mAutoTickCount;
1263 bool mAutoTicks, mAutoTickStep, mAutoSubTicks;
1265 QPen mTickPen, mSelectedTickPen;
1266 QPen mSubTickPen, mSelectedSubTickPen;
1269 bool mRangeReversed;
1271 double mScaleLogBase, mScaleLogBaseLogInv;
1276 int mLowestVisibleTick, mHighestVisibleTick;
1277 QVector<double> mTickVector;
1278 QVector<QString> mTickVectorLabels;
1279 QVector<double> mSubTickVector;
1280 bool mCachedMarginValid;
1284 virtual void setupTickVectors();
1285 virtual void generateAutoTicks();
1286 virtual int calculateAutoSubTickCount(
double tickStep)
const;
1287 virtual int calculateMargin();
1290 virtual void applyDefaultAntialiasingHint(
QCPPainter *painter)
const;
1294 virtual void selectEvent(QMouseEvent *event,
bool additive,
const QVariant &details,
bool *selectionStateChanged);
1295 virtual void deselectEvent(
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;
1316 Q_DECLARE_OPERATORS_FOR_FLAGS(QCPAxis::SelectableParts)
1317 Q_DECLARE_OPERATORS_FOR_FLAGS(QCPAxis::AxisTypes)
1328 virtual int size()
const;
1331 QRect axisSelectionBox()
const {
return mAxisSelectionBox; }
1332 QRect tickLabelsSelectionBox()
const {
return mTickLabelsSelectionBox; }
1333 QRect labelSelectionBox()
const {
return mLabelSelectionBox; }
1343 int tickLabelPadding;
1344 double tickLabelRotation;
1346 bool substituteExponent;
1347 bool numberMultiplyCross;
1348 int tickLengthIn, tickLengthOut, subTickLengthIn, subTickLengthOut;
1349 QPen tickPen, subTickPen;
1350 QFont tickLabelFont;
1351 QColor tickLabelColor;
1352 QRect axisRect, viewportRect;
1354 bool abbreviateDecimalPowers;
1355 bool reversedEndings;
1357 QVector<double> subTickPositions;
1358 QVector<double> tickPositions;
1359 QVector<QString> tickLabels;
1369 QString basePart, expPart;
1370 QRect baseBounds, expBounds, totalBounds, rotatedTotalBounds;
1371 QFont baseFont, expFont;
1374 QByteArray mLabelParameterHash;
1375 QCache<QString, CachedLabel> mLabelCache;
1376 QRect mAxisSelectionBox, mTickLabelsSelectionBox, mLabelSelectionBox;
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; }
1410 bool antialiasedFill()
const {
return mAntialiasedFill; }
1411 bool antialiasedScatters()
const {
return mAntialiasedScatters; }
1412 bool antialiasedErrorBars()
const {
return mAntialiasedErrorBars; }
1413 QPen pen()
const {
return mPen; }
1414 QPen selectedPen()
const {
return mSelectedPen; }
1415 QBrush brush()
const {
return mBrush; }
1416 QBrush selectedBrush()
const {
return mSelectedBrush; }
1417 QCPAxis *keyAxis()
const {
return mKeyAxis.data(); }
1418 QCPAxis *valueAxis()
const {
return mValueAxis.data(); }
1419 bool selectable()
const {
return mSelectable; }
1420 bool selected()
const {
return mSelected; }
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);
1462 bool mAntialiasedFill, mAntialiasedScatters, mAntialiasedErrorBars;
1463 QPen mPen, mSelectedPen;
1464 QBrush mBrush, mSelectedBrush;
1465 QPointer<QCPAxis> mKeyAxis, mValueAxis;
1466 bool mSelectable, mSelected;
1469 virtual QRect clipRect()
const;
1472 void applyDefaultAntialiasingHint(
QCPPainter *painter)
const;
1474 virtual void selectEvent(QMouseEvent *event,
bool additive,
const QVariant &details,
bool *selectionStateChanged);
1475 virtual void deselectEvent(
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;
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;
1518 QCustomPlot *mParentPlot;
1521 QSet<QCPItemPosition*> mChildrenX, mChildrenY;
1533 Q_DISABLE_COPY(QCPItemAnchor)
1566 QCPItemAnchor *parentAnchor()
const {
return parentAnchorX(); }
1567 QCPItemAnchor *parentAnchorX()
const {
return mParentAnchorX; }
1568 QCPItemAnchor *parentAnchorY()
const {
return mParentAnchorY; }
1569 double key()
const {
return mKey; }
1570 double value()
const {
return mValue; }
1571 QPointF coords()
const {
return QPointF(mKey, mValue); }
1572 QCPAxis *keyAxis()
const {
return mKeyAxis.data(); }
1573 QCPAxis *valueAxis()
const {
return mValueAxis.data(); }
1575 virtual QPointF pixelPoint()
const;
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);
1588 void setPixelPoint(
const QPointF &pixelPoint);
1593 QPointer<QCPAxis> mKeyAxis, mValueAxis;
1594 QPointer<QCPAxisRect> mAxisRect;
1595 double mKey, mValue;
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)
1621 bool clipToAxisRect()
const {
return mClipToAxisRect; }
1623 bool selectable()
const {
return mSelectable; }
1624 bool selected()
const {
return mSelected; }
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; }
1640 bool hasAnchor(
const QString &name)
const;
1643 void selectionChanged(
bool selected);
1644 void selectableChanged(
bool selectable);
1648 bool mClipToAxisRect;
1649 QPointer<QCPAxisRect> mClipAxisRect;
1650 QList<QCPItemPosition*> mPositions;
1651 QList<QCPItemAnchor*> mAnchors;
1652 bool mSelectable, mSelected;
1656 virtual QRect clipRect()
const;
1657 virtual void applyDefaultAntialiasingHint(
QCPPainter *painter)
const;
1660 virtual void selectEvent(QMouseEvent *event,
bool additive,
const QVariant &details,
bool *selectionStateChanged);
1661 virtual void deselectEvent(
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);
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)
1719 QRect viewport()
const {
return mViewport; }
1720 QPixmap background()
const {
return mBackgroundPixmap; }
1721 bool backgroundScaled()
const {
return mBackgroundScaled; }
1722 Qt::AspectRatioMode backgroundScaledMode()
const {
return mBackgroundScaledMode; }
1724 QCP::AntialiasedElements antialiasedElements()
const {
return mAntialiasedElements; }
1725 QCP::AntialiasedElements notAntialiasedElements()
const {
return mNotAntialiasedElements; }
1726 bool autoAddPlottableToLegend()
const {
return mAutoAddPlottableToLegend; }
1727 const QCP::Interactions interactions()
const {
return mInteractions; }
1728 int selectionTolerance()
const {
return mSelectionTolerance; }
1729 bool noAntialiasingOnDrag()
const {
return mNoAntialiasingOnDrag; }
1730 QCP::PlottingHints plottingHints()
const {
return mPlottingHints; }
1731 Qt::KeyboardModifier multiSelectModifier()
const {
return mMultiSelectModifier; }
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;
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;
1789 QCPLayer *layer(
const QString &name)
const;
1792 bool setCurrentLayer(
const QString &name);
1793 bool setCurrentLayer(
QCPLayer *layer);
1794 int layerCount()
const;
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);
1819 QCPAxis *xAxis, *yAxis, *xAxis2, *yAxis2;
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();
1848 bool mAutoAddPlottableToLegend;
1849 QList<QCPAbstractPlottable*> mPlottables;
1850 QList<QCPGraph*> mGraphs;
1851 QList<QCPAbstractItem*> mItems;
1852 QList<QCPLayer*> mLayers;
1853 QCP::AntialiasedElements mAntialiasedElements, mNotAntialiasedElements;
1854 QCP::Interactions mInteractions;
1855 int mSelectionTolerance;
1856 bool mNoAntialiasingOnDrag;
1857 QBrush mBackgroundBrush;
1858 QPixmap mBackgroundPixmap;
1859 QPixmap mScaledBackgroundPixmap;
1860 bool mBackgroundScaled;
1861 Qt::AspectRatioMode mBackgroundScaledMode;
1863 QCP::PlottingHints mPlottingHints;
1864 Qt::KeyboardModifier mMultiSelectModifier;
1867 QPixmap mPaintBuffer;
1868 QPoint mMousePressPos;
1869 QPointer<QCPLayoutElement> mMouseEventElement;
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;
1935 bool operator!=(const
QCPColorGradient &other)
const {
return !(*
this == other); }
1938 int levelCount()
const {
return mLevelCount; }
1939 QMap<double, QColor> colorStops()
const {
return mColorStops; }
1941 bool periodic()
const {
return mPeriodic; }
1944 void setLevelCount(
int n);
1945 void setColorStops(
const QMap<double, QColor> &colorStops);
1946 void setColorStopAt(
double position,
const QColor &color);
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);
1954 void clearColorStops();
1958 void updateColorBuffer();
1962 QMap<double, QColor> mColorStops;
1967 QVector<QRgb> mColorBuffer;
1968 bool mColorBufferInvalidated;
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)
1987 QPixmap background()
const {
return mBackgroundPixmap; }
1988 bool backgroundScaled()
const {
return mBackgroundScaled; }
1989 Qt::AspectRatioMode backgroundScaledMode()
const {
return mBackgroundScaledMode; }
1990 Qt::Orientations rangeDrag()
const {
return mRangeDrag; }
1991 Qt::Orientations rangeZoom()
const {
return mRangeZoom; }
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);
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(); }
2033 QPoint topRight()
const {
return mRect.topRight(); }
2034 QPoint bottomLeft()
const {
return mRect.bottomLeft(); }
2035 QPoint bottomRight()
const {
return mRect.bottomRight(); }
2036 QPoint center()
const {
return mRect.center(); }
2040 virtual QList<QCPLayoutElement*> elements(
bool recursive)
const;
2044 QBrush mBackgroundBrush;
2045 QPixmap mBackgroundPixmap;
2046 QPixmap mScaledBackgroundPixmap;
2047 bool mBackgroundScaled;
2048 Qt::AspectRatioMode mBackgroundScaledMode;
2050 Qt::Orientations mRangeDrag, mRangeZoom;
2051 QPointer<QCPAxis> mRangeDragHorzAxis, mRangeDragVertAxis, mRangeZoomHorzAxis, mRangeZoomVertAxis;
2052 double mRangeZoomFactorHorz, mRangeZoomFactorVert;
2054 QCPRange mDragStartHorzRange, mDragStartVertRange;
2055 QCP::AntialiasedElements mAADragBackup, mNotAADragBackup;
2058 QHash<QCPAxis::AxisType, QList<QCPAxis*> > mAxes;
2061 virtual void applyDefaultAntialiasingHint(
QCPPainter *painter)
const;
2065 virtual void mousePressEvent(QMouseEvent *event);
2066 virtual void mouseMoveEvent(QMouseEvent *event);
2067 virtual void mouseReleaseEvent(QMouseEvent *event);
2068 virtual void wheelEvent(QWheelEvent *event);
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)
2097 QCPLegend *parentLegend()
const {
return mParentLegend; }
2098 QFont font()
const {
return mFont; }
2099 QColor textColor()
const {
return mTextColor; }
2100 QFont selectedFont()
const {
return mSelectedFont; }
2101 QColor selectedTextColor()
const {
return mSelectedTextColor; }
2102 bool selectable()
const {
return mSelectable; }
2103 bool selected()
const {
return mSelected; }
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);
2125 QFont mSelectedFont;
2126 QColor mSelectedTextColor;
2127 bool mSelectable, mSelected;
2131 virtual void applyDefaultAntialiasingHint(
QCPPainter *painter)
const;
2132 virtual QRect clipRect()
const;
2135 virtual void selectEvent(QMouseEvent *event,
bool additive,
const QVariant &details,
bool *selectionStateChanged);
2136 virtual void deselectEvent(
bool *selectionStateChanged);
2160 virtual QSize minimumSizeHint()
const;
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
2202 virtual ~QCPLegend();
2205 QPen borderPen()
const {
return mBorderPen; }
2206 QBrush brush()
const {
return mBrush; }
2207 QFont font()
const {
return mFont; }
2208 QColor textColor()
const {
return mTextColor; }
2209 QSize iconSize()
const {
return mIconSize; }
2210 int iconTextPadding()
const {
return mIconTextPadding; }
2211 QPen iconBorderPen()
const {
return mIconBorderPen; }
2212 SelectableParts selectableParts()
const {
return mSelectableParts; }
2213 SelectableParts selectedParts()
const;
2214 QPen selectedBorderPen()
const {
return mSelectedBorderPen; }
2215 QPen selectedIconBorderPen()
const {
return mSelectedIconBorderPen; }
2216 QBrush selectedBrush()
const {
return mSelectedBrush; }
2217 QFont selectedFont()
const {
return mSelectedFont; }
2218 QColor selectedTextColor()
const {
return mSelectedTextColor; }
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);
2258 QPen mBorderPen, mIconBorderPen;
2263 int mIconTextPadding;
2264 SelectableParts mSelectedParts, mSelectableParts;
2265 QPen mSelectedBorderPen, mSelectedIconBorderPen;
2266 QBrush mSelectedBrush;
2267 QFont mSelectedFont;
2268 QColor mSelectedTextColor;
2271 virtual void parentPlotInitialized(
QCustomPlot *parentPlot);
2273 virtual void applyDefaultAntialiasingHint(
QCPPainter *painter)
const;
2276 virtual void selectEvent(QMouseEvent *event,
bool additive,
const QVariant &details,
bool *selectionStateChanged);
2277 virtual void deselectEvent(
bool *selectionStateChanged);
2280 QPen getBorderPen()
const;
2281 QBrush getBrush()
const;
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)
2310 QString text()
const {
return mText; }
2311 QFont font()
const {
return mFont; }
2312 QColor textColor()
const {
return mTextColor; }
2313 QFont selectedFont()
const {
return mSelectedFont; }
2314 QColor selectedTextColor()
const {
return mSelectedTextColor; }
2315 bool selectable()
const {
return mSelectable; }
2316 bool selected()
const {
return mSelected; }
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);
2339 QFont mSelectedFont;
2340 QColor mSelectedTextColor;
2341 QRect mTextBoundingRect;
2342 bool mSelectable, mSelected;
2345 virtual void applyDefaultAntialiasingHint(
QCPPainter *painter)
const;
2347 virtual QSize minimumSizeHint()
const;
2348 virtual QSize maximumSizeHint()
const;
2350 virtual void selectEvent(QMouseEvent *event,
bool additive,
const QVariant &details,
bool *selectionStateChanged);
2351 virtual void deselectEvent(
bool *selectionStateChanged);
2354 QFont mainFont()
const;
2355 QColor mainTextColor()
const;
2369 QImage mGradientImage;
2370 bool mGradientImageInvalidated;
2372 using QCPAxisRect::calculateAutoMargin;
2373 using QCPAxisRect::mousePressEvent;
2374 using QCPAxisRect::mouseMoveEvent;
2375 using QCPAxisRect::mouseReleaseEvent;
2376 using QCPAxisRect::wheelEvent;
2377 using QCPAxisRect::update;
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(); }
2406 QCPRange dataRange()
const {
return mDataRange; }
2409 QString label()
const;
2410 int barWidth ()
const {
return mBarWidth; }
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);
2432 void dataRangeChanged(
QCPRange newRange);
2445 QPointer<QCPColorScaleAxisRectPrivate> mAxisRect;
2446 QPointer<QCPAxis> mColorAxis;
2449 virtual void applyDefaultAntialiasingHint(
QCPPainter *painter)
const;
2451 virtual void mousePressEvent(QMouseEvent *event);
2452 virtual void mouseMoveEvent(QMouseEvent *event);
2453 virtual void mouseReleaseEvent(QMouseEvent *event);
2454 virtual void wheelEvent(QWheelEvent *event);
2471 QCPData(
double key,
double value);
2473 double keyErrorPlus, keyErrorMinus;
2474 double valueErrorPlus, valueErrorMinus;
2476 Q_DECLARE_TYPEINFO(
QCPData, Q_MOVABLE_TYPE);
2486 typedef QMapIterator<double, QCPData> QCPDataMapIterator;
2487 typedef QMutableMapIterator<double, QCPData> QCPDataMutableMapIterator;
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)
2532 QCPDataMap *data()
const {
return mData; }
2533 LineStyle lineStyle()
const {
return mLineStyle; }
2535 ErrorType errorType()
const {
return mErrorType; }
2536 QPen errorPen()
const {
return mErrorPen; }
2537 double errorBarSize()
const {
return mErrorBarSize; }
2538 bool errorBarSkipSymbol()
const {
return mErrorBarSkipSymbol; }
2539 QCPGraph *channelFillGraph()
const {
return mChannelFillGraph.data(); }
2540 bool adaptiveSampling()
const {
return mAdaptiveSampling; }
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);
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);
2561 void addData(
const QCPDataMap &dataMap);
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);
2571 virtual void clearData();
2572 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
2573 using QCPAbstractPlottable::rescaleAxes;
2574 using QCPAbstractPlottable::rescaleKeyAxis;
2575 using QCPAbstractPlottable::rescaleValueAxis;
2576 void rescaleAxes(
bool onlyEnlarge,
bool includeErrorBars)
const;
2577 void rescaleKeyAxis(
bool onlyEnlarge,
bool includeErrorBars)
const;
2578 void rescaleValueAxis(
bool onlyEnlarge,
bool includeErrorBars)
const;
2587 double mErrorBarSize;
2588 bool mErrorBarSkipSymbol;
2589 QPointer<QCPGraph> mChannelFillGraph;
2590 bool mAdaptiveSampling;
2594 virtual void drawLegendIcon(
QCPPainter *painter,
const QRectF &rect)
const;
2595 virtual QCPRange getKeyRange(
bool &foundRange,
SignDomain inSignDomain=sdBoth)
const;
2596 virtual QCPRange getValueRange(
bool &foundRange,
SignDomain inSignDomain=sdBoth)
const;
2597 virtual QCPRange getKeyRange(
bool &foundRange,
SignDomain inSignDomain,
bool includeErrors)
const;
2598 virtual QCPRange getValueRange(
bool &foundRange,
SignDomain inSignDomain,
bool includeErrors)
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;
2643 double t, key, value;
2656 typedef QMapIterator<double, QCPCurveData> QCPCurveDataMapIterator;
2657 typedef QMutableMapIterator<double, QCPCurveData> QCPCurveDataMutableMapIterator;
2664 Q_PROPERTY(
QCPScatterStyle scatterStyle READ scatterStyle WRITE setScatterStyle)
2665 Q_PROPERTY(
LineStyle lineStyle READ lineStyle WRITE setLineStyle)
2680 QCPCurveDataMap *data()
const {
return mData; }
2682 LineStyle lineStyle()
const {
return mLineStyle; }
2685 void setData(QCPCurveDataMap *data,
bool copy=
false);
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);
2692 void addData(
const QCPCurveDataMap &dataMap);
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);
2703 virtual void clearData();
2704 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
2708 QCPCurveDataMap *mData;
2714 virtual void drawLegendIcon(
QCPPainter *painter,
const QRectF &rect)
const;
2715 virtual QCPRange getKeyRange(
bool &foundRange,
SignDomain inSignDomain=sdBoth)
const;
2716 virtual QCPRange getValueRange(
bool &foundRange,
SignDomain inSignDomain=sdBoth)
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;
2744 Q_PROPERTY(
SpacingType spacingType READ spacingType WRITE setSpacingType)
2745 Q_PROPERTY(
double spacing READ spacing WRITE setSpacing)
2762 SpacingType spacingType()
const {
return mSpacingType; }
2763 double spacing()
const {
return mSpacing; }
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(); }
2773 bool isEmpty()
const {
return mBars.isEmpty(); }
2775 bool contains(
QCPBars *bars)
const {
return mBars.contains(bars); }
2777 void insert(
int i,
QCPBars *bars);
2785 QList<QCPBars*> mBars;
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);
2809 Q_DECLARE_TYPEINFO(
QCPBarData, Q_MOVABLE_TYPE);
2819 typedef QMapIterator<double, QCPBarData> QCPBarDataMapIterator;
2820 typedef QMutableMapIterator<double, QCPBarData> QCPBarDataMutableMapIterator;
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)
2851 double width()
const {
return mWidth; }
2852 WidthType widthType()
const {
return mWidthType; }
2854 double baseValue()
const {
return mBaseValue; }
2855 QCPBars *barBelow()
const {
return mBarBelow.data(); }
2856 QCPBars *barAbove()
const {
return mBarAbove.data(); }
2857 QCPBarDataMap *data()
const {
return mData; }
2860 void setWidth(
double width);
2863 void setBaseValue(
double baseValue);
2864 void setData(QCPBarDataMap *data,
bool copy=
false);
2865 void setData(
const QVector<double> &key,
const QVector<double> &value);
2868 void moveBelow(
QCPBars *bars);
2869 void moveAbove(
QCPBars *bars);
2870 void addData(
const QCPBarDataMap &dataMap);
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);
2880 virtual void clearData();
2881 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
2885 QCPBarDataMap *mData;
2890 QPointer<QCPBars> mBarBelow, mBarAbove;
2894 virtual void drawLegendIcon(
QCPPainter *painter,
const QRectF &rect)
const;
2895 virtual QCPRange getKeyRange(
bool &foundRange,
SignDomain inSignDomain=sdBoth)
const;
2896 virtual QCPRange getValueRange(
bool &foundRange,
SignDomain inSignDomain=sdBoth)
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;
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; }
2938 double minimum()
const {
return mMinimum; }
2939 double lowerQuartile()
const {
return mLowerQuartile; }
2940 double median()
const {
return mMedian; }
2941 double upperQuartile()
const {
return mUpperQuartile; }
2942 double maximum()
const {
return mMaximum; }
2943 QVector<double> outliers()
const {
return mOutliers; }
2944 double width()
const {
return mWidth; }
2945 double whiskerWidth()
const {
return mWhiskerWidth; }
2946 QPen whiskerPen()
const {
return mWhiskerPen; }
2947 QPen whiskerBarPen()
const {
return mWhiskerBarPen; }
2948 QPen medianPen()
const {
return mMedianPen; }
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);
2968 virtual void clearData();
2969 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
2973 QVector<double> mOutliers;
2974 double mKey, mMinimum, mLowerQuartile, mMedian, mUpperQuartile, mMaximum;
2976 double mWhiskerWidth;
2977 QPen mWhiskerPen, mWhiskerBarPen, mMedianPen;
2982 virtual void drawLegendIcon(
QCPPainter *painter,
const QRectF &rect)
const;
2983 virtual QCPRange getKeyRange(
bool &foundRange,
SignDomain inSignDomain=sdBoth)
const;
2984 virtual QCPRange getValueRange(
bool &foundRange,
SignDomain inSignDomain=sdBoth)
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;
3006 int keySize()
const {
return mKeySize; }
3007 int valueSize()
const {
return mValueSize; }
3008 QCPRange keyRange()
const {
return mKeyRange; }
3009 QCPRange valueRange()
const {
return mValueRange; }
3010 QCPRange dataBounds()
const {
return mDataBounds; }
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);
3028 bool isEmpty()
const {
return mIsEmpty; }
3029 void coordToCell(
double key,
double value,
int *keyIndex,
int *valueIndex)
const;
3030 void cellToCoord(
int keyIndex,
int valueIndex,
double *key,
double *value)
const;
3034 int mKeySize, mValueSize;
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)
3063 QCPRange dataRange()
const {
return mDataRange; }
3065 bool interpolate()
const {
return mInterpolate; }
3066 bool tightBoundary()
const {
return mTightBoundary; }
3068 QCPColorScale *colorScale()
const {
return mColorScale.data(); }
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));
3084 virtual void clearData();
3085 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
3088 void dataRangeChanged(
QCPRange newRange);
3099 bool mTightBoundary;
3100 QPointer<QCPColorScale> mColorScale;
3102 QImage mMapImage, mUndersampledMapImage;
3103 QPixmap mLegendIcon;
3104 bool mMapImageInvalidated;
3107 virtual void updateMapImage();
3111 virtual void drawLegendIcon(
QCPPainter *painter,
const QRectF &rect)
const;
3112 virtual QCPRange getKeyRange(
bool &foundRange,
SignDomain inSignDomain=sdBoth)
const;
3113 virtual QCPRange getValueRange(
bool &foundRange,
SignDomain inSignDomain=sdBoth)
const;
3128 QCPFinancialData(
double key,
double open,
double high,
double low,
double close);
3129 double key, open, high, low, close;
3141 typedef QMapIterator<double, QCPFinancialData> QCPFinancialDataMapIterator;
3142 typedef QMutableMapIterator<double, QCPFinancialData> QCPFinancialDataMutableMapIterator;
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)
3172 QCPFinancialDataMap *data()
const {
return mData; }
3173 ChartStyle chartStyle()
const {
return mChartStyle; }
3174 double width()
const {
return mWidth; }
3175 bool twoColored()
const {
return mTwoColored; }
3176 QBrush brushPositive()
const {
return mBrushPositive; }
3177 QBrush brushNegative()
const {
return mBrushNegative; }
3178 QPen penPositive()
const {
return mPenPositive; }
3179 QPen penNegative()
const {
return mPenNegative; }
3183 void setData(QCPFinancialDataMap *data,
bool copy=
false);
3184 void setData(
const QVector<double> &key,
const QVector<double> &open,
const QVector<double> &high,
const QVector<double> &low,
const QVector<double> &close);
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);
3194 void addData(
const QCPFinancialDataMap &dataMap);
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);
3204 virtual void clearData();
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);
3212 QCPFinancialDataMap *mData;
3216 QBrush mBrushPositive, mBrushNegative;
3217 QPen mPenPositive, mPenNegative;
3221 virtual void drawLegendIcon(
QCPPainter *painter,
const QRectF &rect)
const;
3222 virtual QCPRange getKeyRange(
bool &foundRange,
SignDomain inSignDomain=sdBoth)
const;
3223 virtual QCPRange getValueRange(
bool &foundRange,
SignDomain inSignDomain=sdBoth)
const;
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;
3241 Q_PROPERTY(QPen pen READ pen WRITE setPen)
3242 Q_PROPERTY(QPen selectedPen READ selectedPen WRITE setSelectedPen)
3249 QPen pen()
const {
return mPen; }
3250 QPen selectedPen()
const {
return mSelectedPen; }
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;
3264 QPen mPen, mSelectedPen;
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; }
3291 QPen selectedPen()
const {
return mSelectedPen; }
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;
3309 QPen mPen, mSelectedPen;
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; }
3336 QPen selectedPen()
const {
return mSelectedPen; }
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;
3356 QPen mPen, mSelectedPen;
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; }
3382 QPen selectedPen()
const {
return mSelectedPen; }
3383 QBrush brush()
const {
return mBrush; }
3384 QBrush selectedBrush()
const {
return mSelectedBrush; }
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};
3408 QPen mPen, mSelectedPen;
3409 QBrush mBrush, mSelectedBrush;
3413 virtual QPointF anchorPixelPoint(
int anchorId)
const;
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)
3444 QColor color()
const {
return mColor; }
3445 QColor selectedColor()
const {
return mSelectedColor; }
3446 QPen pen()
const {
return mPen; }
3447 QPen selectedPen()
const {
return mSelectedPen; }
3448 QBrush brush()
const {
return mBrush; }
3449 QBrush selectedBrush()
const {
return mSelectedBrush; }
3450 QFont font()
const {
return mFont; }
3451 QFont selectedFont()
const {
return mSelectedFont; }
3452 QString text()
const {
return mText; }
3453 Qt::Alignment positionAlignment()
const {
return mPositionAlignment; }
3454 Qt::Alignment textAlignment()
const {
return mTextAlignment; }
3455 double rotation()
const {
return mRotation; }
3456 QMargins padding()
const {
return mPadding; }
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};
3490 QColor mColor, mSelectedColor;
3491 QPen mPen, mSelectedPen;
3492 QBrush mBrush, mSelectedBrush;
3493 QFont mFont, mSelectedFont;
3495 Qt::Alignment mPositionAlignment;
3496 Qt::Alignment mTextAlignment;
3502 virtual QPointF anchorPixelPoint(
int anchorId)
const;
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; }
3528 QPen selectedPen()
const {
return mSelectedPen; }
3529 QBrush brush()
const {
return mBrush; }
3530 QBrush selectedBrush()
const {
return mSelectedBrush; }
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};
3557 QPen mPen, mSelectedPen;
3558 QBrush mBrush, mSelectedBrush;
3562 virtual QPointF anchorPixelPoint(
int anchorId)
const;
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)
3586 QPixmap pixmap()
const {
return mPixmap; }
3587 bool scaled()
const {
return mScaled; }
3588 Qt::AspectRatioMode aspectRatioMode()
const {
return mAspectRatioMode; }
3589 Qt::TransformationMode transformationMode()
const {
return mTransformationMode; }
3590 QPen pen()
const {
return mPen; }
3591 QPen selectedPen()
const {
return mSelectedPen; }
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};
3616 QPixmap mScaledPixmap;
3618 bool mScaledPixmapInvalidated;
3619 Qt::AspectRatioMode mAspectRatioMode;
3620 Qt::TransformationMode mTransformationMode;
3621 QPen mPen, mSelectedPen;
3625 virtual QPointF anchorPixelPoint(
int anchorId)
const;
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)
3666 QPen pen()
const {
return mPen; }
3667 QPen selectedPen()
const {
return mSelectedPen; }
3668 QBrush brush()
const {
return mBrush; }
3669 QBrush selectedBrush()
const {
return mSelectedBrush; }
3670 double size()
const {
return mSize; }
3672 QCPGraph *graph()
const {
return mGraph; }
3673 double graphKey()
const {
return mGraphKey; }
3674 bool interpolating()
const {
return mInterpolating; }
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);
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();
3697 QPen mPen, mSelectedPen;
3698 QBrush mBrush, mSelectedBrush;
3703 bool mInterpolating;
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; }
3735 QPen selectedPen()
const {
return mSelectedPen; }
3736 double length()
const {
return mLength; }
3740 void setPen(
const QPen &pen);
3741 void setSelectedPen(
const QPen &pen);
3742 void setLength(
double length);
3746 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
3754 enum AnchorIndex {aiCenter};
3755 QPen mPen, mSelectedPen;
3761 virtual QPointF anchorPixelPoint(
int anchorId)
const;
3764 QPen mainPen()
const;
3767 #endif // QCUSTOMPLOT_H
0x001 Axis ranges are draggable (see QCPAxisRect::setRangeDrag, QCPAxisRect::setRangeDragAxes) ...
QCPRange & operator/=(const double &value)
0x0400 Zero-lines, see QCPGrid::setZeroLinePen
QMap< double, QCPData > QCPDataMap
0x004 axis (tick) labels will be cached as pixmaps, increasing replot performance.
QCPRange & operator+=(const double &value)
0x0020 Main lines of plottables (excluding error bars, see element aeErrorBars)
0x004 The user can select multiple objects by holding the modifier set by QCustomPlot::setMultiSelect...
0x020 Legends are selectable (or their child items, see QCPLegend::setSelectableParts) ...
Whether to use immediate repaint or queued update depends on whether the plotting hint QCP::phForceRe...
QMap< double, QCPBarData > QCPBarDataMap
0x010 Axes are selectable (or parts of them, see QCPAxis::setSelectableParts)
0x008 Plottables are selectable (e.g. graphs, curves, bars,... see QCPAbstractPlottable) ...
0x0040 Main lines of items
QMap< double, QCPFinancialData > QCPFinancialDataMap
0x001 Graph/Curve lines are drawn with a faster method.
QCPRange & operator-=(const double &value)
0x0200 Borders of fills (e.g. under or between graphs)
0x0080 Scatter symbols of plottables (excluding scatter symbols of type ssPixmap) ...
0x080 All other objects are selectable (e.g. your own derived layerables, the plot title...
0x002 Axis ranges are zoomable with the mouse wheel (see QCPAxisRect::setRangeZoom, QCPAxisRect::setRangeZoomAxes)
0x002 causes an immediate repaint() instead of a soft update() when QCustomPlot::replot() is called w...
const QCPRange operator*(const QCPRange &range, double value)
0x040 Items are selectable (Rectangles, Arrows, Textitems, etc. see QCPAbstractItem) ...
0x0001 Axis base line and tick marks
const QCPRange operator-(const QCPRange &range, double value)
QCPRange & operator*=(const double &value)
QMap< double, QCPCurveData > QCPCurveDataMap
const QCPRange operator/(const QCPRange &range, double value)
const QCPRange operator+(const QCPRange &range, double value)