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> 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)
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);
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
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);
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);
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;
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;
854 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
905 double width()
const {
return mWidth; }
906 double length()
const {
return mLength; }
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);
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
1105 int tickLabelPadding()
const;
1109 double tickLabelRotation()
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);
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;
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);
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;
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);
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;
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;
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; }
1640 bool hasAnchor(
const QString &name)
const;
1643 void selectionChanged(
bool selected);
1644 void selectableChanged(
bool selectable);
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);
1675 friend class QCustomPlot;
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)
1715 explicit QCustomPlot(QWidget *parent = 0);
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;
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);
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;
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();
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);
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(); }
2040 virtual QList<QCPLayoutElement*> elements(
bool recursive)
const;
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);
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);
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; }
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);
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;
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);
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;
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)
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);
2432 void dataRangeChanged(
QCPRange newRange);
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);
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; }
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;
2576 void rescaleAxes(
bool onlyEnlarge,
bool includeErrorBars)
const;
2577 void rescaleKeyAxis(
bool onlyEnlarge,
bool includeErrorBars)
const;
2578 void rescaleValueAxis(
bool onlyEnlarge,
bool includeErrorBars)
const;
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;
2629 friend class QCustomPlot;
2664 Q_PROPERTY(
QCPScatterStyle scatterStyle READ scatterStyle WRITE setScatterStyle)
2665 Q_PROPERTY(
LineStyle lineStyle READ lineStyle WRITE setLineStyle)
2680 QCPCurveDataMap *
data()
const {
return mData; }
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;
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;
2731 friend class QCustomPlot;
2744 Q_PROPERTY(
SpacingType spacingType READ spacingType WRITE setSpacingType)
2745 Q_PROPERTY(
double spacing READ spacing WRITE setSpacing)
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)
2851 double width()
const {
return mWidth; }
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;
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;
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);
2968 virtual void clearData();
2969 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
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;
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)
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);
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;
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)
3172 QCPFinancialDataMap *data()
const {
return mData; }
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);
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;
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};
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)
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};
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; }
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};
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)
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};
3624 virtual QPointF anchorPixelPoint(
int anchorId)
const;
3627 void updateScaledPixmap(QRect finalRect=QRect(),
bool flipHorz=
false,
bool flipVert=
false);
3628 QRect getFinalRect(
bool *flippedHorz=0,
bool *flippedVert=0)
const;
3629 QPen mainPen()
const;
3637 Q_PROPERTY(QPen pen READ pen WRITE setPen)
3638 Q_PROPERTY(QPen selectedPen READ selectedPen WRITE setSelectedPen)
3639 Q_PROPERTY(QBrush brush READ brush WRITE setBrush)
3640 Q_PROPERTY(QBrush selectedBrush READ selectedBrush WRITE setSelectedBrush)
3641 Q_PROPERTY(
double size READ size WRITE setSize)
3642 Q_PROPERTY(
TracerStyle style READ style WRITE setStyle)
3643 Q_PROPERTY(
QCPGraph* graph READ graph WRITE setGraph)
3644 Q_PROPERTY(
double graphKey READ graphKey WRITE setGraphKey)
3645 Q_PROPERTY(
bool interpolating READ interpolating WRITE setInterpolating)
3665 QPen pen()
const {
return mPen; }
3669 double size()
const {
return mSize; }
3676 void setPen(
const QPen &pen);
3677 void setSelectedPen(
const QPen &pen);
3678 void setBrush(
const QBrush &brush);
3679 void setSelectedBrush(
const QBrush &brush);
3680 void setSize(
double size);
3683 void setGraphKey(
double key);
3684 void setInterpolating(
bool enabled);
3687 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
3690 void updatePosition();
3708 QPen mainPen()
const;
3709 QBrush mainBrush()
const;
3717 Q_PROPERTY(QPen pen READ pen WRITE setPen)
3718 Q_PROPERTY(QPen selectedPen READ selectedPen WRITE setSelectedPen)
3719 Q_PROPERTY(
double length READ length WRITE setLength)
3720 Q_PROPERTY(
BracketStyle style READ style WRITE setStyle)
3733 QPen
pen()
const {
return mPen; }
3739 void setPen(
const QPen &pen);
3740 void setSelectedPen(
const QPen &pen);
3741 void setLength(
double length);
3745 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const;
3760 virtual QPointF anchorPixelPoint(
int anchorId)
const;
3763 QPen mainPen()
const;
3766 #endif // QCUSTOMPLOT_H QList< QList< QCPLayoutElement * > > mElements
QCP::AntialiasedElements mNotAADragBackup
QCPLayoutGrid * plotLayout() const
A bracket for referencing/highlighting certain parts in the plot.
QCustomPlot * mParentPlot
A margin group allows synchronization of margin sides if working with multiple layout elements...
QList< QCPGraph * > mGraphs
bool operator==(const QCPRange &other) const
QList< QCPLayoutElement * > elements(QCP::MarginSide side) const
static const double maxRange
Whether to use immediate repaint or queued update depends on whether the plotting hint QCP::phForceRe...
bool isInvalidData(double value)
QCPColorGradient gradient() const
bool clipToAxisRect() const
QPen whiskerBarPen() const
QBrush brushNegative() const
QCPItemPosition *const end
QCPColorMapData * mMapData
bool subGridVisible() const
QCPLayout * mParentLayout
void drawLine(const QPointF &p1, const QPointF &p2)
AdjacencyIterator end(const Adjacency &adj, const Vector< D > &vct, size_t pixel_index)
Returns an iterator to position after the end of elements.
PainterModes modes() const
QCPRange dataRange() const
QMap< double, QCPData > QCPDataMap
QCP::AntialiasedElements antialiasedElements() const
Holds the data of one single data point for QCPCurve.
QCPRange keyRange() const
QCPLineEnding tail() const
void rescaleKeyAxis(bool onlyEnlarge=false) const
bool mNumberBeautifulPowers
QCPItemAnchor *const center
A legend item representing a plottable with an icon and the plottable name.
QHash< QCP::MarginSide, QCPMarginGroup * > mMarginGroups
QBrush selectedBrush() const
QCPItemPosition *const start
int numberPrecision() const
QByteArray mLabelParameterHash
QCPAbstractPlottable * plottable()
PositionType typeX() const
QCPBarDataMap * data() const
EndingStyle style() const
virtual void mouseMoveEvent(QMouseEvent *event)
double errorBarSize() const
QCPItemPosition *const topLeft
SelectableParts mSelectedParts
QPen selectedBorderPen() const
The abstract base class for all entries in a QCPLegend.
QCPItemAnchor *const topRight
bool mAntialiasedZeroLine
0x0001 Axis base line and tick marks
QPainterPath customPath() const
Responsible for drawing the grid of a QCPAxis.
Qt::Alignment positionAlignment() const
0x001 Axis ranges are draggable (see QCPAxisRect::setRangeDrag, QCPAxisRect::setRangeDragAxes) ...
QCPItemAnchor * parentAnchor() const
QVector< QString > tickLabels
Qt::AspectRatioMode backgroundScaledMode() const
QSize maximumSize() const
const QCPRange range() const
QCPColorGradient mGradient
QCPColorMapData * data() const
bool noAntialiasingOnDrag() const
QRect axisSelectionBox() const
QList< QCPItemPosition * > mPositions
QCP::PlottingHints plottingHints() const
QCustomPlot * mParentPlot
QColor mSelectedTextColor
virtual void applyDefaultAntialiasingHint(QCPPainter *painter) const
QColor labelColor() const
An anchor of an item to which positions can be attached to.
Qt::Orientations mRangeZoom
QCPItemAnchor *const bottomLeftRim
virtual int calculateAutoMargin(QCP::MarginSide side)
QHash< QCP::MarginSide, QCPMarginGroup * > marginGroups() const
QBrush selectedBrush() const
QCPAxis * keyAxis() const
QCache< QString, CachedLabel > mLabelCache
QCPItemPosition *const right
QCP::MarginSides autoMargins() const
QVector< double > subTickPositions
virtual void mouseReleaseEvent(QMouseEvent *event)
QCPFinancialDataMap * mData
QCPLineEnding head() const
QCPRange & operator*=(const double &value)
Base class for all drawable objects.
QPixmap mBackgroundPixmap
QPen selectedBasePen() const
bool antialiasedErrorBars() const
bool mGradientImageInvalidated
QCPAxis::ScaleType dataScaleType() const
QBrush brushPositive() const
A plottable representing a bar chart in a plot.
const QCP::Interactions interactions() const
QCPRange & operator+=(const double &value)
QVector< double > mTickVector
0x080 All other objects are selectable (e.g. your own derived layerables, the plot title...
A curved line from one point to another.
0x0080 Scatter symbols of plottables (excluding scatter symbols of type ssPixmap) ...
bool operator!=(const QCPRange &other) const
QFont selectedTickLabelFont() const
QColor mSelectedTextColor
QPointer< QCPBars > mBarBelow
QCustomPlot * mParentPlot
QList< QCPLayerable * > children() const
QCPScatterStyle mScatterStyle
A layout that arranges child elements in a grid.
virtual void mousePressEvent(QMouseEvent *event)
QPoint bottomLeft() const
QCPScatterStyle mOutlierStyle
QList< QCPLayer * > mLayers
QCP::AntialiasedElements mNotAntialiasedElements
QCPItemAnchor *const bottom
0x0040 Main lines of items
QImage mUndersampledMapImage
QCP::MarginSides mAutoMargins
The abstract base class for all data representing objects in a plot.
QCPScatterStyle outlierStyle() const
QVector< QString > tickVectorLabels() const
A plottable representing a single statistical box in a plot.
QColor tickLabelColor() const
Qt::Alignment textAlignment() const
Q_DECLARE_TYPEINFO(QCPScatterStyle, Q_MOVABLE_TYPE)
bool autoAddPlottableToLegend() const
QCPItemAnchor *const left
QPointer< QCPAxis > mValueAxis
QList< QCPBars * > bars() const
QPen selectedTickPen() const
QPointer< QCPAxis > mColorAxis
bool errorBarSkipSymbol() const
0x008 Plottables are selectable (e.g. graphs, curves, bars,... see QCPAbstractPlottable) ...
QCPItemAnchor * parentAnchorY() const
QMutableMapIterator< double, QCPBarData > QCPBarDataMutableMapIterator
QColor selectedColor() const
QCPItemPosition *const endDir
bool antialiasedSubGrid() const
QCPItemPosition *const bottomRight
QColor selectedTextColor() const
QCPColorGradient mGradient
bool antialiasedFill() const
Qt::AspectRatioMode aspectRatioMode() const
QCustomPlot * mParentPlot
QCPColorScale * colorScale() const
A plottable representing a graph in a plot.
QCPItemPosition *const start
int iconTextPadding() const
The abstract base class for all items in a plot.
QList< QRectF > mInsetRect
QCPLayoutInset * mInsetLayout
0x004 axis (tick) labels will be cached as pixmaps, increasing replot performance.
QRect tickLabelsSelectionBox() const
Item that sticks to QCPGraph data points.
QCPLegend * mParentLegend
QRect mTickLabelsSelectionBox
QCPItemAnchor *const right
bool mNoAntialiasingOnDrag
The central class of the library. This is the QWidget which displays the plot and interacts with the ...
0x040 Items are selectable (Rectangles, Arrows, Textitems, etc. see QCPAbstractItem) ...
int columnSpacing() const
bool backgroundScaled() const
virtual void wheelEvent(QWheelEvent *event)
Manages a single axis inside a QCustomPlot.
QCPLineEnding tail() const
QList< QCPItemAnchor * > anchors() const
QCPAxis::AxisType type() const
double upperQuartile() const
QCPBarsGroup * barsGroup() const
bool isPenDefined() const
double lowerQuartile() const
QCPScatterStyle scatterStyle() const
QCPItemAnchor *const topRight
QCPColorScale * mParentColorScale
QCPItemAnchor *const topLeftRim
PositionType type() const
Represents the visual appearance of scatter points.
Manages a legend inside a QCustomPlot.
QList< QCPItemPosition * > positions() const
QList< QCPLayerable * > mChildren
QSet< QCPItemPosition * > mChildrenY
PositionType mPositionTypeY
QCPLayerable * parentLayerable() const
QPointer< QCPColorScaleAxisRectPrivate > mAxisRect
Qt::AspectRatioMode mBackgroundScaledMode
bool abbreviateDecimalPowers
0x0200 Borders of fills (e.g. under or between graphs)
QFont selectedFont() const
0x004 The user can select multiple objects by holding the modifier set by QCustomPlot::setMultiSelect...
QList< double > rowStretchFactors() const
QCPItemAnchor *const bottomRight
QCPItemAnchor *const bottomLeft
QPointer< QCPAxis > mValueAxis
QCPRange valueRange() const
QCPRange mDragStartVertRange
QVector< double > mSubTickVector
QCPItemAnchor *const topRightRim
AdjacencyIterator begin(const Adjacency &adj, const Vector< D > &vct, size_t pixel_index)
returns an iterator to first valid adjacent element.
A layer that may contain objects, to control the rendering order.
Qt::Orientation orientation() const
QCPItemPosition *const position
bool interpolating() const
SpacingType spacingType() const
The abstract base class for all objects that form the layout system.
QCPAxis * keyAxis() const
QList< InsetPlacement > mInsetPlacement
QCPColorGradient gradient() const
QCPLineEnding upperEnding
Qt::AspectRatioMode mAspectRatioMode
QPen selectedIconBorderPen() const
QCPItemAnchor * parentAnchorX() const
A straight line that spans infinitely in both directions.
QCPBarsGroup * mBarsGroup
QMap< double, QCPBarData > QCPBarDataMap
QCPItemAnchor *const left
QFont tickLabelFont() const
bool autoSubTicks() const
A layout that places child elements aligned to the border or arbitrarily positioned.
0x020 Legends are selectable (or their child items, see QCPLegend::setSelectableParts) ...
double scaleLogBase() const
Handles the different ending decorations for line-like items.
A color scale for use with color coding data such as QCPColorMap.
QCPDataMap * data() const
QCP::PlottingHints mPlottingHints
Holds the data of one single data point for QCPGraph.
QCPAxis * valueAxis() const
virtual QCPItemPosition * toQCPItemPosition()
QPointer< QCPAxisRect > mClipAxisRect
bool mAntialiasedScatters
QVector< QString > mTickVectorLabels
int getMarginValue(const QMargins &margins, QCP::MarginSide side)
QList< QCPAbstractPlottable * > mPlottables
QCustomPlot * parentPlot() const
QPainter subclass used internally.
Qt::TransformationMode transformationMode() const
Qt::KeyboardModifier multiSelectModifier() const
QCPCurveDataMap * data() const
QMutableMapIterator< double, QCPData > QCPDataMutableMapIterator
Qt::TimeSpec mDateTimeSpec
QCPScatterStyle scatterStyle() const
WidthType widthType() const
QFont selectedLabelFont() const
QCPItemAnchor *const bottom
QVector< double > outliers() const
QCPLineEnding head() const
SelectableParts mSelectedParts
virtual void mouseMoveEvent(QMouseEvent *event)
QVector< QRgb > mColorBuffer
QCPAxisRect * axisRect() const
QCPAbstractItem * mParentItem
int selectionTolerance() const
LineStyle lineStyle() const
QMargins minimumMargins() const
QCPRange & operator/=(const double &value)
Qt::Orientation mOrientation
QRect labelSelectionBox() const
static const double minRange
QVector< double > mOutliers
bool backgroundScaled() const
QPointer< QCPAxis > mRangeZoomVertAxis
QCPItemAnchor *const bottom
void rescaleAxes(bool onlyEnlarge=false) const
0x0020 Main lines of plottables (excluding error bars, see element aeErrorBars)
bool autoTickStep() const
LabelType tickLabelType() const
QBrush selectedBrush() const
Qt::Orientations rangeZoom() const
QFont selectedFont() const
QCPBars * barBelow() const
bool rangeReversed() const
QCPItemAnchor *const center
virtual QCPItemPosition * toQCPItemPosition()
A plottable representing a parametric curve in a plot.
QCPItemPosition *const topLeft
QMap< double, QCPFinancialData > QCPFinancialDataMap
QCPItemAnchor *const bottom
bool mAutoAddPlottableToLegend
QList< Qt::Alignment > mInsetAlignment
QCustomPlot * parentPlot() const
QVector< double > tickVector() const
void rescaleValueAxis(bool onlyEnlarge=false) const
QMapIterator< double, QCPBarData > QCPBarDataMapIterator
QList< double > mColumnStretchFactors
bool mMapImageInvalidated
BracketStyle style() const
A layout element displaying a plot title text.
QCPItemAnchor *const bottomRightRim
SelectableParts selectedParts() const
QPointer< QCPColorScale > mColorScale
QCPLayoutInset * insetLayout() const
QCPLegend * parentLegend() const
QColor selectedTickLabelColor() const
QMap< double, QColor > mColorStops
QStack< bool > mAntialiasingStack
double mScaleLogBaseLogInv
QCPItemPosition *const point1
QCPAxis::ScaleType mDataScaleType
virtual void mouseDoubleClickEvent(QMouseEvent *event)
QCPAxis::ScaleType mDataScaleType
QCPItemAnchor *const bottomLeft
QColor selectedTextColor() const
LineStyle lineStyle() const
QBrush selectedBrush() const
QHash< QCPAxis::AxisType, QList< QCPAxis * > > mAxes
QCPItemAnchor *const right
QPen selectedSubTickPen() const
QMapIterator< double, QCPData > QCPDataMapIterator
ChartStyle chartStyle() const
QCPItemPosition *const startDir
QMapIterator< double, QCPFinancialData > QCPFinancialDataMapIterator
ErrorType errorType() const
QColor selectedLabelColor() const
Holds the two-dimensional data of a QCPColorMap plottable.
virtual void update(UpdatePhase phase)
QList< QCPAbstractItem * > mItems
int autoTickCount() const
PositionType typeY() const
0x002 Axis ranges are zoomable with the mouse wheel (see QCPAxisRect::setRangeZoom, QCPAxisRect::setRangeZoomAxes)
double mRangeZoomFactorVert
A plottable representing a financial stock chart.
TracerStyle style() const
QBrush selectedBrush() const
QMutableMapIterator< double, QCPFinancialData > QCPFinancialDataMutableMapIterator
void setMarginValue(QMargins &margins, QCP::MarginSide side, int value)
QCPAxisPainterPrivate * mAxisPainter
The abstract base class for layouts.
Holds the data of one single data point for QCPFinancial.
QPen mSelectedIconBorderPen
QCPItemPosition *const bottomRight
QCPItemAnchor *const left
QCPAbstractPlottable * mPlottable
ColorInterpolation mColorInterpolation
QCPBars * barAbove() const
QCPItemAnchor *const bottomLeft
A plottable representing a two-dimensional color map in a plot.
QHash< QCP::MarginSide, QList< QCPLayoutElement * > > mChildren
QCPAxis * valueAxis() const
QString dateTimeFormat() const
QCPItemPosition *const position
QCPAxis::LabelSide tickLabelSide
QPointer< QCPLayerable > mParentLayerable
QCPItemAnchor *const topLeft
virtual void mousePressEvent(QMouseEvent *event)
QCPItemAnchor *const right
QList< double > mRowStretchFactors
QPixmap mScaledBackgroundPixmap
Qt::TimeSpec dateTimeSpec() const
QPoint bottomRight() const
QPointer< QCPAxisRect > mAxisRect
QList< QCPLayoutElement * > mElements
Qt::TransformationMode mTransformationMode
QVector< double > tickPositions
QFont selectedFont() const
QCPRange dataBounds() const
A line from one point to another.
QColor mSelectedTextColor
bool contains(QCPBars *bars) const
SelectableParts selectableParts() const
QCPItemPosition *const point2
const QCPRange operator*(const QCPRange &range, double value)
bool autoTickLabels() const
QCPItemAnchor * mParentAnchorY
double whiskerWidth() const
0x0400 Zero-lines, see QCPGrid::setZeroLinePen
bool antialiasedScatters() const
Manages the position of an item.
QPen iconBorderPen() const
QCPItemPosition *const end
QCPAxis::ScaleType dataScaleType() const
bool tightBoundary() const
QPixmap mBackgroundPixmap
Defines a color gradient for use with e.g. QCPColorMap.
QPixmap background() const
QList< double > columnStretchFactors() const
QCPMarginGroup * marginGroup(QCP::MarginSide side) const
static Qt::Orientation orientation(AxisType type)
QPixmap mScaledBackgroundPixmap
QMap< double, QColor > colorStops() const
Represents the range an axis is encompassing.
QCPRange dataRange() const
QCPLayoutGrid * mPlotLayout
QList< QCPItemAnchor * > mAnchors
QCPScatterStyle mScatterStyle
Groups multiple QCPBars together so they appear side by side.
QPixmap background() const
ColorInterpolation colorInterpolation() const
0x010 Axes are selectable (or parts of them, see QCPAxis::setSelectableParts)
QBrush selectedBrush() const
bool adaptiveSampling() const
QMutableMapIterator< double, QCPCurveData > QCPCurveDataMutableMapIterator
QSize minimumSize() const
Qt::Orientations rangeDrag() const
ScaleType scaleType() const
QCPItemPosition *const topLeft
SelectableParts selectableParts() const
bool antialiasedZeroLine() const
Qt::Alignment mPositionAlignment
Holds multiple axes and arranges them in a rectangular shape.
Qt::AspectRatioMode backgroundScaledMode() const
QCPItemAnchor *const left
const QCPRange operator-(const QCPRange &range, double value)
Qt::KeyboardModifier mMultiSelectModifier
QFont selectedFont() const
QPointer< QCPLayoutElement > mMouseEventElement
QCP::AntialiasedElements notAntialiasedElements() const
QMap< double, QCPCurveData > QCPCurveDataMap
QCPRange & operator-=(const double &value)
const QCPRange operator/(const QCPRange &range, double value)
QCP::Interactions mInteractions
QCPItemAnchor *const topRight
Qt::Alignment mTextAlignment
QLatin1Char mNumberFormatChar
virtual void draw(QCPPainter *painter)
QCPItemPosition *const left
bool mColorBufferInvalidated
QCustomPlot * mParentPlot
QPointer< QCPGraph > mChannelFillGraph
QCustomPlot * mParentPlot
ScatterShape shape() const
const QCPRange operator+(const QCPRange &range, double value)
QCPItemPosition *const bottomRight
QCPItemAnchor *const right
QCPGraph * channelFillGraph() const
Qt::AspectRatioMode mBackgroundScaledMode
QColor selectedTextColor() const
virtual void wheelEvent(QWheelEvent *event)
static big_t count(int syms, int len, int left)
QMapIterator< double, QCPCurveData > QCPCurveDataMapIterator
virtual void mouseReleaseEvent(QMouseEvent *event)
Holds the data of one single data point (one bar) for QCPBars.
QColor mSelectedLabelColor