|
SETestKCL
1.0.
|
#include <qcustomplot.h>


Signals | |
| void | layerChanged (QCPLayer *newLayer) |
Public Member Functions | |
| QCPLayerable (QCustomPlot *plot, QString targetLayer=QString(), QCPLayerable *parentLayerable=0) | |
| ~QCPLayerable () | |
| bool | visible () const |
| QCustomPlot * | parentPlot () const |
| QCPLayerable * | parentLayerable () const |
| QCPLayer * | layer () const |
| bool | antialiased () const |
| void | setVisible (bool on) |
| Q_SLOT bool | setLayer (QCPLayer *layer) |
| bool | setLayer (const QString &layerName) |
| void | setAntialiased (bool enabled) |
| virtual double | selectTest (const QPointF &pos, bool onlySelectable, QVariant *details=0) const |
| bool | realVisibility () const |
Protected Member Functions | |
| virtual void | parentPlotInitialized (QCustomPlot *parentPlot) |
| virtual QCP::Interaction | selectionCategory () const |
| virtual QRect | clipRect () const |
| virtual void | applyDefaultAntialiasingHint (QCPPainter *painter) const =0 |
| virtual void | draw (QCPPainter *painter)=0 |
| virtual void | selectEvent (QMouseEvent *event, bool additive, const QVariant &details, bool *selectionStateChanged) |
| virtual void | deselectEvent (bool *selectionStateChanged) |
| void | initializeParentPlot (QCustomPlot *parentPlot) |
| void | setParentLayerable (QCPLayerable *parentLayerable) |
| bool | moveToLayer (QCPLayer *layer, bool prepend) |
| void | applyAntialiasingHint (QCPPainter *painter, bool localAntialiased, QCP::AntialiasedElement overrideElement) const |
Protected Attributes | |
| bool | mVisible |
| QCustomPlot * | mParentPlot |
| QPointer< QCPLayerable > | mParentLayerable |
| QCPLayer * | mLayer |
| bool | mAntialiased |
Friends | |
| class | QCustomPlot |
| class | QCPAxisRect |
Base class for all drawable objects.
This is the abstract base class most visible objects derive from, e.g. plottables, axes, grid etc.
Every layerable is on a layer (QCPLayer) which allows controlling the rendering order by stacking the layers accordingly.
For details about the layering mechanism, see the QCPLayer documentation.
Definition at line 408 of file qcustomplot.h.
| QCPLayerable | ( | QCustomPlot * | plot, |
| QString | targetLayer = QString(), |
||
| QCPLayerable * | parentLayerable = 0 |
||
| ) |
Creates a new QCPLayerable instance.
Since QCPLayerable is an abstract base class, it can't be instantiated directly. Use one of the derived classes.
If plot is provided, it automatically places itself on the layer named targetLayer. If targetLayer is an empty string, it places itself on the current layer of the plot (see QCustomPlot::setCurrentLayer).
It is possible to provide 0 as plot. In that case, you should assign a parent plot at a later time with initializeParentPlot.
The layerable's parent layerable is set to parentLayerable, if provided. Direct layerable parents are mainly used to control visibility in a hierarchy of layerables. This means a layerable is only drawn, if all its ancestor layerables are also visible. Note that parentLayerable does not become the QObject-parent (for memory management) of this layerable, plot does. It is not uncommon to set the QObject-parent to something else in the constructors of QCPLayerable subclasses, to guarantee a working destruction hierarchy.
Definition at line 922 of file qcustomplot.cpp.
References QCustomPlot::currentLayer(), mParentPlot, and setLayer().
| ~QCPLayerable | ( | ) |
Definition at line 939 of file qcustomplot.cpp.
References mLayer, and QCPLayer::removeChild().
|
inline |
Definition at line 427 of file qcustomplot.h.
|
protected |
Definition at line 1152 of file qcustomplot.cpp.
References QCustomPlot::antialiasedElements(), mParentPlot, QCustomPlot::notAntialiasedElements(), and QCPPainter::setAntialiasing().
Referenced by QCPGrid::applyDefaultAntialiasingHint(), QCPAxis::applyDefaultAntialiasingHint(), QCPAbstractPlottable::applyDefaultAntialiasingHint(), QCPAbstractItem::applyDefaultAntialiasingHint(), QCPAbstractLegendItem::applyDefaultAntialiasingHint(), QCPLegend::applyDefaultAntialiasingHint(), QCPPlotTitle::applyDefaultAntialiasingHint(), QCPAbstractPlottable::applyErrorBarsAntialiasingHint(), QCPAbstractPlottable::applyFillAntialiasingHint(), QCPAbstractPlottable::applyScattersAntialiasingHint(), QCPGrid::drawGridLines(), and QCPGrid::drawSubGridLines().
|
protectedpure virtual |
Implemented in QCPColorScale, QCPPlotTitle, QCPLegend, QCPAbstractLegendItem, QCPAxisRect, QCPAbstractItem, QCPAbstractPlottable, QCPAxis, QCPGrid, and QCPLayoutElement.
Referenced by QCustomPlot::draw().
|
protectedvirtual |
Reimplemented in QCPAbstractLegendItem, QCPAbstractItem, and QCPAbstractPlottable.
Definition at line 1208 of file qcustomplot.cpp.
References mParentPlot, and QCustomPlot::viewport().
Referenced by QCustomPlot::draw().
|
protectedvirtual |
Reimplemented in QCPPlotTitle, QCPLegend, QCPAbstractLegendItem, QCPAbstractItem, QCPAbstractPlottable, and QCPAxis.
Definition at line 1264 of file qcustomplot.cpp.
Referenced by QCustomPlot::deselectAll(), and QCustomPlot::mouseReleaseEvent().
|
protectedpure virtual |
Implemented in QCPItemBracket, QCPItemTracer, QCPItemPixmap, QCPItemEllipse, QCPItemText, QCPItemRect, QCPItemCurve, QCPItemLine, QCPItemStraightLine, QCPFinancial, QCPColorMap, QCPStatisticalBox, QCPBars, QCPCurve, QCPGraph, QCPColorScaleAxisRectPrivate, QCPPlotTitle, QCPLegend, QCPPlottableLegendItem, QCPAbstractLegendItem, QCPAxisRect, QCPAbstractItem, QCPAbstractPlottable, QCPAxis, QCPGrid, and QCPLayoutElement.
Referenced by QCustomPlot::draw().
|
protected |
Definition at line 1082 of file qcustomplot.cpp.
References mParentPlot, parentPlot(), and parentPlotInitialized().
Referenced by QCPLayout::adoptElement(), QCPLayoutElement::parentPlotInitialized(), QCPAxisRect::QCPAxisRect(), and QCustomPlot::QCustomPlot().
|
inline |
Definition at line 426 of file qcustomplot.h.
Referenced by QCustomPlot::addPlottable(), moveToLayer(), and setLayer().
|
signal |
This signal is emitted when the layer of this layerable changes, i.e. this layerable is moved to a different layer.
Referenced by moveToLayer(), and QCPColorScaleAxisRectPrivate::QCPColorScaleAxisRectPrivate().
|
protected |
Definition at line 1121 of file qcustomplot.cpp.
References QCPLayer::addChild(), layer(), layerChanged(), mLayer, mParentPlot, QCPLayer::name(), QCPLayer::parentPlot(), and QCPLayer::removeChild().
Referenced by setLayer().
|
inline |
Returns the parent layerable of this layerable. The parent layerable is used to provide visibility hierarchies in conjunction with the method realVisibility. This way, layerables only get drawn if their parent layerables are visible, too.
Note that a parent layerable is not necessarily also the QObject parent for memory management. Further, a layerable doesn't always have a parent layerable, so this function may return 0.
A parent layerable is set implicitly with when placed inside layout elements and doesn't need to be set manually by the user.
Definition at line 425 of file qcustomplot.h.
Referenced by setParentLayerable().
|
inline |
Definition at line 424 of file qcustomplot.h.
Referenced by QCustomPlot::addGraph(), QCustomPlot::addItem(), QCustomPlot::addPlottable(), QCPLayout::adoptElement(), initializeParentPlot(), QCPLayoutElement::parentPlotInitialized(), QCPAbstractPlottable::QCPAbstractPlottable(), QCPAxisRect::removeAxis(), and QCPItemTracer::setGraph().
|
protectedvirtual |
Reimplemented in QCPLegend, and QCPLayoutElement.
Definition at line 1178 of file qcustomplot.cpp.
Referenced by initializeParentPlot().
| bool realVisibility | ( | ) | const |
Returns whether this layerable is visible, taking the visibility of the layerable parent and the visibility of the layer this layerable is on into account. This is the method that is consulted to decide whether a layerable shall be drawn or not.
If this layerable has a direct layerable parent (usually set via hierarchies implemented in subclasses, like in the case of QCPLayoutElement), this function returns true only if this layerable has its visibility set to true and the parent layerable's realVisibility returns true.
If this layerable doesn't have a direct layerable parent, returns the state of this layerable's visibility.
Definition at line 1018 of file qcustomplot.cpp.
References mLayer, mParentLayerable, mVisible, and QCPLayer::visible().
Referenced by QCustomPlot::draw(), and QCustomPlot::layoutElementAt().
|
protectedvirtual |
Reimplemented in QCPPlotTitle, QCPLegend, QCPAbstractLegendItem, QCPAbstractItem, QCPAbstractPlottable, and QCPAxis.
Definition at line 1244 of file qcustomplot.cpp.
Referenced by QCustomPlot::mouseReleaseEvent().
|
protectedvirtual |
Reimplemented in QCPLegend, QCPAbstractLegendItem, QCPAbstractItem, QCPAbstractPlottable, and QCPAxis.
Definition at line 1194 of file qcustomplot.cpp.
References QCP::iSelectOther.
Referenced by QCustomPlot::mouseReleaseEvent().
|
virtual |
This function is used to decide whether a click hits a layerable object or not.
pos is a point in pixel coordinates on the QCustomPlot surface. This function returns the shortest pixel distance of this point to the object. If the object is either invisible or the distance couldn't be determined, -1.0 is returned. Further, if onlySelectable is true and the object is not selectable, -1.0 is returned, too.
If the object is represented not by single lines but by an area like a QCPItemText or the bars of a QCPBars plottable, a click inside the area should also be considered a hit. In these cases this function thus returns a constant value greater zero but still below the parent plot's selection tolerance. (typically the selectionTolerance multiplied by 0.99).
Providing a constant value for area objects allows selecting line objects even when they are obscured by such area objects, by clicking close to the lines (i.e. closer than 0.99*selectionTolerance).
The actual setting of the selection state is not done by this function. This is handled by the parent QCustomPlot when the mouseReleaseEvent occurs, and the finally selected object is notified via the selectEvent/deselectEvent methods.
details is an optional output parameter. Every layerable subclass may place any information in details. This information will be passed to selectEvent when the parent QCustomPlot decides on the basis of this selectTest call, that the object was successfully selected. The subsequent call to selectEvent will carry the details. This is useful for multi-part objects (like QCPAxis). This way, a possibly complex calculation to decide which part was clicked is only done once in selectTest. The result (i.e. the actually clicked part) can then be placed in details. So in the subsequent selectEvent, the decision which part was selected doesn't have to be done a second time for a single selection operation.
You may pass 0 as details to indicate that you are not interested in those selection details.
Reimplemented in QCPItemBracket, QCPItemTracer, QCPItemPixmap, QCPItemEllipse, QCPItemText, QCPItemRect, QCPItemCurve, QCPItemLine, QCPItemStraightLine, QCPFinancial, QCPColorMap, QCPStatisticalBox, QCPBars, QCPCurve, QCPGraph, QCPPlotTitle, QCPLegend, QCPAbstractLegendItem, QCPAbstractItem, QCPAbstractPlottable, QCPAxis, QCPLayoutInset, and QCPLayoutElement.
Definition at line 1057 of file qcustomplot.cpp.
Referenced by QCustomPlot::layerableAt().
| void setAntialiased | ( | bool | enabled | ) |
Sets whether this object will be drawn antialiased or not.
Note that antialiasing settings may be overridden by QCustomPlot::setAntialiasedElements and QCustomPlot::setNotAntialiasedElements.
Definition at line 1000 of file qcustomplot.cpp.
References mAntialiased.
Referenced by QCPAxis::QCPAxis(), QCPGrid::QCPGrid(), and QCPLegend::QCPLegend().
| bool setLayer | ( | QCPLayer * | layer | ) |
Sets the layer of this layerable object. The object will be placed on top of the other objects already on layer.
If layer is 0, this layerable will not be on any layer and thus not appear in the plot (or interact/receive events).
Returns true if the layer of this layerable was successfully changed to layer.
Definition at line 967 of file qcustomplot.cpp.
References moveToLayer().
Referenced by QCustomPlot::addPlottable(), QCPAbstractLegendItem::QCPAbstractLegendItem(), QCPAxis::QCPAxis(), QCPColorScaleAxisRectPrivate::QCPColorScaleAxisRectPrivate(), QCPLayerable(), QCPPlotTitle::QCPPlotTitle(), QCustomPlot::QCustomPlot(), and setLayer().
| bool setLayer | ( | const QString & | layerName | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Sets the layer of this layerable object by name
Returns true on success, i.e. if layerName is a valid layer name.
Definition at line 977 of file qcustomplot.cpp.
References layer(), QCustomPlot::layer(), mParentPlot, and setLayer().
|
protected |
Definition at line 1108 of file qcustomplot.cpp.
References mParentLayerable, and parentLayerable().
Referenced by QCPLayout::adoptElement(), QCPAxisRect::QCPAxisRect(), QCPColorScaleAxisRectPrivate::QCPColorScaleAxisRectPrivate(), QCPLayout::releaseElement(), QCPAbstractItem::setClipAxisRect(), and QCPAbstractItem::setClipToAxisRect().
| void setVisible | ( | bool | on | ) |
Sets the visibility of this layerable object. If an object is not visible, it will not be drawn on the QCustomPlot surface, and user interaction with it (e.g. click and selection) is not possible.
Definition at line 953 of file qcustomplot.cpp.
References mVisible.
Referenced by QCPItemEllipse::draw(), QCPAxis::QCPAxis(), QCPAxisRect::QCPAxisRect(), QCPColorScaleAxisRectPrivate::QCPColorScaleAxisRectPrivate(), QCustomPlot::QCustomPlot(), and QCPAxisRect::setupFullAxesBox().
|
inline |
Definition at line 423 of file qcustomplot.h.
Referenced by QCPGrid::setSubGridVisible(), and QCPAxis::setupTickVectors().
|
friend |
Definition at line 472 of file qcustomplot.h.
|
friend |
Definition at line 471 of file qcustomplot.h.
|
protected |
Definition at line 450 of file qcustomplot.h.
Referenced by QCPGrid::applyDefaultAntialiasingHint(), QCPAxis::applyDefaultAntialiasingHint(), QCPAbstractPlottable::applyDefaultAntialiasingHint(), QCPAbstractItem::applyDefaultAntialiasingHint(), QCPAbstractLegendItem::applyDefaultAntialiasingHint(), QCPLegend::applyDefaultAntialiasingHint(), QCPPlotTitle::applyDefaultAntialiasingHint(), and setAntialiased().
|
protected |
Definition at line 449 of file qcustomplot.h.
Referenced by moveToLayer(), realVisibility(), and ~QCPLayerable().
|
protected |
Definition at line 448 of file qcustomplot.h.
Referenced by realVisibility(), and setParentLayerable().
|
protected |
Definition at line 447 of file qcustomplot.h.
Referenced by QCPAbstractPlottable::addToLegend(), QCPLayout::adoptElement(), applyAntialiasingHint(), QCPAxis::calculateMargin(), QCPFinancial::candlestickSelectTest(), clipRect(), QCPAbstractItem::clipRect(), QCPColorScale::colorMaps(), QCPAbstractItem::createAnchor(), QCPAbstractItem::createPosition(), QCPAxis::draw(), QCPCurve::draw(), QCPGraph::drawLinePlot(), QCPAxis::graphs(), QCPAxisRect::graphs(), initializeParentPlot(), QCPAxis::items(), QCPAxisRect::items(), QCPAxisRect::mouseMoveEvent(), QCPAxisRect::mousePressEvent(), QCPAxisRect::mouseReleaseEvent(), moveToLayer(), QCPAxis::plottables(), QCPAxisRect::plottables(), QCPAxis::QCPAxis(), QCPAxisRect::QCPAxisRect(), QCPLayerable(), QCPAbstractItem::rectSelectTest(), QCPLayout::releaseElement(), QCPAbstractPlottable::removeFromLegend(), QCPLayoutElement::selectTest(), QCPLayoutInset::selectTest(), QCPAxis::selectTest(), QCPAbstractLegendItem::selectTest(), QCPLegend::selectTest(), QCPPlotTitle::selectTest(), QCPBars::selectTest(), QCPStatisticalBox::selectTest(), QCPColorMap::selectTest(), QCPItemEllipse::selectTest(), QCPItemTracer::selectTest(), QCPGraph::setChannelFillGraph(), QCPItemTracer::setGraph(), setLayer(), QCPAxis::setupTickVectors(), QCPItemTracer::updatePosition(), QCPAxisRect::wheelEvent(), and QCPLegend::~QCPLegend().
|
protected |
Definition at line 446 of file qcustomplot.h.
Referenced by QCPAxis::calculateMargin(), QCPAxis::getPartAt(), realVisibility(), and setVisible().
1.8.5