|
OmronPID
|
A color scale for use with color coding data such as QCPColorMap. More...
Signals | |
| void | dataRangeChanged (const QCPRange &newRange) |
| This signal is emitted when the data range changes. | |
| void | dataScaleTypeChanged (QCPAxis::ScaleType scaleType) |
| This signal is emitted when the data scale type changes. | |
| void | gradientChanged (const QCPColorGradient &newGradient) |
| This signal is emitted when the gradient changes. | |
Signals inherited from QCPLayerable | |
| void | layerChanged (QCPLayer *newLayer) |
| This signal is emitted when the layer of this layerable changes, i.e. | |
Public Member Functions | |
| QCPColorScale (QCustomPlot *parentPlot) | |
| Constructs a new QCPColorScale. | |
| QCPAxis * | axis () const |
| Returns the internal QCPAxis instance of this color scale. | |
| QCPAxis::AxisType | type () const |
| QCPRange | dataRange () const |
| QCPAxis::ScaleType | dataScaleType () const |
| QCPColorGradient | gradient () const |
| QString | label () const |
| int | barWidth () const |
| bool | rangeDrag () const |
| bool | rangeZoom () const |
| void | setType (QCPAxis::AxisType type) |
| Sets at which side of the color scale the axis is placed, and thus also its orientation. | |
| Q_SLOT void | setDataRange (const QCPRange &dataRange) |
| Sets the range spanned by the color gradient and that is shown by the axis in the color scale. | |
| Q_SLOT void | setDataScaleType (QCPAxis::ScaleType scaleType) |
| Sets the scale type of the color scale, i.e. | |
| Q_SLOT void | setGradient (const QCPColorGradient &gradient) |
| Sets the color gradient that will be used to represent data values. | |
| void | setLabel (const QString &str) |
| Sets the axis label of the color scale. | |
| void | setBarWidth (int width) |
| Sets the width (or height, for horizontal color scales) the bar where the gradient is displayed will have. | |
| void | setRangeDrag (bool enabled) |
| Sets whether the user can drag the data range (setDataRange). | |
| void | setRangeZoom (bool enabled) |
| Sets whether the user can zoom the data range (setDataRange) by scrolling the mouse wheel. | |
| QList< QCPColorMap * > | colorMaps () const |
| Returns a list of all the color maps associated with this color scale. | |
| void | rescaleDataRange (bool onlyVisibleMaps) |
| Changes the data range such that all color maps associated with this color scale are fully mapped to the gradient in the data dimension. | |
| virtual void | update (UpdatePhase phase) Q_DECL_OVERRIDE |
| Updates the layout element and sub-elements. | |
Public Member Functions inherited from QCPLayoutElement | |
| QCPLayoutElement (QCustomPlot *parentPlot=0) | |
| Creates an instance of QCPLayoutElement and sets default values. | |
| QCPLayout * | layout () const |
| Returns the parent layout of this layout element. | |
| QRect | rect () const |
| Returns the inner rect of this layout element. | |
| QRect | outerRect () const |
| Returns the outer rect of this layout element. | |
| QMargins | margins () const |
| QMargins | minimumMargins () const |
| QCP::MarginSides | autoMargins () const |
| QSize | minimumSize () const |
| QSize | maximumSize () const |
| SizeConstraintRect | sizeConstraintRect () const |
| QCPMarginGroup * | marginGroup (QCP::MarginSide side) const |
| QHash< QCP::MarginSide, QCPMarginGroup * > | marginGroups () const |
| void | setOuterRect (const QRect &rect) |
| Sets the outer rect of this layout element. | |
| void | setMargins (const QMargins &margins) |
| Sets the margins of this layout element. | |
| void | setMinimumMargins (const QMargins &margins) |
| If setAutoMargins is enabled on some or all margins, this function is used to provide minimum values for those margins. | |
| void | setAutoMargins (QCP::MarginSides sides) |
| Sets on which sides the margin shall be calculated automatically. | |
| void | setMinimumSize (const QSize &size) |
| Sets the minimum size of this layout element. | |
| void | setMinimumSize (int width, int height) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Sets the minimum size of this layout element. | |
| void | setMaximumSize (const QSize &size) |
| Sets the maximum size of this layout element. | |
| void | setMaximumSize (int width, int height) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Sets the maximum size of this layout element. | |
| void | setSizeConstraintRect (SizeConstraintRect constraintRect) |
| Sets to which rect of a layout element the size constraints apply. | |
| void | setMarginGroup (QCP::MarginSides sides, QCPMarginGroup *group) |
| Sets the margin group of the specified margin sides. | |
| virtual void | update (UpdatePhase phase) |
| Updates the layout element and sub-elements. | |
| virtual QSize | minimumOuterSizeHint () const |
| Returns the suggested minimum size this layout element (the outerRect) may be compressed to, if no manual minimum size is set. | |
| virtual QSize | maximumOuterSizeHint () const |
| Returns the suggested maximum size this layout element (the outerRect) may be expanded to, if no manual maximum size is set. | |
| virtual QList< QCPLayoutElement * > | elements (bool recursive) const |
| Returns a list of all child elements in this layout element. | |
| virtual double | selectTest (const QPointF &pos, bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE |
| Layout elements are sensitive to events inside their outer rect. | |
Public Member Functions inherited from QCPLayerable | |
| QCPLayerable (QCustomPlot *plot, QString targetLayer=QString(), QCPLayerable *parentLayerable=0) | |
| Creates a new QCPLayerable instance. | |
| bool | visible () const |
| QCustomPlot * | parentPlot () const |
| QCPLayerable * | parentLayerable () const |
| Returns the parent layerable of this layerable. | |
| QCPLayer * | layer () const |
| bool | antialiased () const |
| void | setVisible (bool on) |
| Sets the visibility of this layerable object. | |
| Q_SLOT bool | setLayer (QCPLayer *layer) |
| Sets the layer of this layerable object. | |
| 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. | |
| void | setAntialiased (bool enabled) |
| Sets whether this object will be drawn antialiased or not. | |
| virtual double | selectTest (const QPointF &pos, bool onlySelectable, QVariant *details=0) const |
| This function is used to decide whether a click hits a layerable object or not. | |
| bool | realVisibility () const |
| Returns whether this layerable is visible, taking the visibility of the layerable parent and the visibility of this layerable's layer into account. | |
Protected Member Functions | |
| virtual void | applyDefaultAntialiasingHint (QCPPainter *painter) const Q_DECL_OVERRIDE |
| virtual void | mousePressEvent (QMouseEvent *event, const QVariant &details) Q_DECL_OVERRIDE |
| This event gets called when the user presses a mouse button while the cursor is over the layerable. | |
| virtual void | mouseMoveEvent (QMouseEvent *event, const QPointF &startPos) Q_DECL_OVERRIDE |
| This event gets called when the user moves the mouse while holding a mouse button, after this layerable has become the mouse grabber by accepting the preceding mousePressEvent. | |
| virtual void | mouseReleaseEvent (QMouseEvent *event, const QPointF &startPos) Q_DECL_OVERRIDE |
| This event gets called when the user releases the mouse button, after this layerable has become the mouse grabber by accepting the preceding mousePressEvent. | |
| virtual void | wheelEvent (QWheelEvent *event) Q_DECL_OVERRIDE |
| This event gets called when the user turns the mouse scroll wheel while the cursor is over the layerable. | |
Protected Member Functions inherited from QCPLayoutElement | |
| virtual int | calculateAutoMargin (QCP::MarginSide side) |
| virtual void | layoutChanged () |
| virtual void | applyDefaultAntialiasingHint (QCPPainter *painter) const Q_DECL_OVERRIDE |
| virtual void | draw (QCPPainter *painter) Q_DECL_OVERRIDE |
| virtual void | parentPlotInitialized (QCustomPlot *parentPlot) Q_DECL_OVERRIDE |
Protected Member Functions inherited from QCPLayerable | |
| 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) |
| virtual void | mousePressEvent (QMouseEvent *event, const QVariant &details) |
| This event gets called when the user presses a mouse button while the cursor is over the layerable. | |
| virtual void | mouseMoveEvent (QMouseEvent *event, const QPointF &startPos) |
| This event gets called when the user moves the mouse while holding a mouse button, after this layerable has become the mouse grabber by accepting the preceding mousePressEvent. | |
| virtual void | mouseReleaseEvent (QMouseEvent *event, const QPointF &startPos) |
| This event gets called when the user releases the mouse button, after this layerable has become the mouse grabber by accepting the preceding mousePressEvent. | |
| virtual void | mouseDoubleClickEvent (QMouseEvent *event, const QVariant &details) |
| This event gets called when the user presses the mouse button a second time in a double-click, while the cursor is over the layerable. | |
| virtual void | wheelEvent (QWheelEvent *event) |
| This event gets called when the user turns the mouse scroll wheel while the cursor is over the layerable. | |
| 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 | |
| QCPAxis::AxisType | mType |
| QCPRange | mDataRange |
| QCPAxis::ScaleType | mDataScaleType |
| QCPColorGradient | mGradient |
| int | mBarWidth |
| QPointer< QCPColorScaleAxisRectPrivate > | mAxisRect |
| QPointer< QCPAxis > | mColorAxis |
Protected Attributes inherited from QCPLayoutElement | |
| QCPLayout * | mParentLayout |
| QSize | mMinimumSize |
| QSize | mMaximumSize |
| SizeConstraintRect | mSizeConstraintRect |
| QRect | mRect |
| QRect | mOuterRect |
| QMargins | mMargins |
| QMargins | mMinimumMargins |
| QCP::MarginSides | mAutoMargins |
| QHash< QCP::MarginSide, QCPMarginGroup * > | mMarginGroups |
Protected Attributes inherited from QCPLayerable | |
| bool | mVisible |
| QCustomPlot * | mParentPlot |
| QPointer< QCPLayerable > | mParentLayerable |
| QCPLayer * | mLayer |
| bool | mAntialiased |
Friends | |
| class | QCPColorScaleAxisRectPrivate |
Additional Inherited Members | |
Public Types inherited from QCPLayoutElement | |
| enum | UpdatePhase { upPreparation , upMargins , upLayout } |
| Defines the phases of the update process, that happens just before a replot. More... | |
| enum | SizeConstraintRect { scrInnerRect , scrOuterRect } |
| Defines to which rect of a layout element the size constraints that can be set via setMinimumSize and setMaximumSize apply. More... | |
A color scale for use with color coding data such as QCPColorMap.
This layout element can be placed on the plot to correlate a color gradient with data values. It is usually used in combination with one or multiple QCPColorMaps.
The color scale can be either horizontal or vertical, as shown in the image above. The orientation and the side where the numbers appear is controlled with setType.
Use QCPColorMap::setColorScale to connect a color map with a color scale. Once they are connected, they share their gradient, data range and data scale type (setGradient, setDataRange, setDataScaleType). Multiple color maps may be associated with a single color scale, to make them all synchronize these properties.
To have finer control over the number display and axis behaviour, you can directly access the axis. See the documentation of QCPAxis for details about configuring axes. For example, if you want to change the number of automatically generated ticks, call
Placing a color scale next to the main axis rect works like with any other layout element:
In this case we have placed it to the right of the default axis rect, so it wasn't necessary to call setType, since QCPAxis::atRight is already the default. The text next to the color scale can be set with setLabel.
For optimum appearance (like in the image above), it may be desirable to line up the axis rect and the borders of the color scale. Use a QCPMarginGroup to achieve this:
Color scales are initialized with a non-zero minimum top and bottom margin (setMinimumMargins), because vertical color scales are most common and the minimum top/bottom margin makes sure it keeps some distance to the top/bottom widget border. So if you change to a horizontal color scale by setting setType to QCPAxis::atBottom or QCPAxis::atTop, you might want to also change the minimum margins accordingly, e.g. setMinimumMargins(QMargins(6, 0, 6, 0)).
|
protectedvirtual |
Reimplemented from QCPLayoutElement.
|
inline |
Returns the internal QCPAxis instance of this color scale.
You can access it to alter the appearance and behaviour of the axis. QCPColorScale duplicates some properties in its interface for convenience. Those are setDataRange (QCPAxis::setRange), setDataScaleType (QCPAxis::setScaleType), and the method setLabel (QCPAxis::setLabel). As they each are connected, it does not matter whether you use the method on the QCPColorScale or on its QCPAxis.
If the type of the color scale is changed with setType, the axis returned by this method will change, too, to either the left, right, bottom or top axis, depending on which type was set.
|
signal |
This signal is emitted when the data range changes.
|
signal |
This signal is emitted when the data scale type changes.
|
signal |
This signal is emitted when the gradient changes.
|
protectedvirtual |
This event gets called when the user moves the mouse while holding a mouse button, after this layerable has become the mouse grabber by accepting the preceding mousePressEvent.
The current pixel position of the cursor on the QCustomPlot widget is accessible via event->pos(). The parameter startPos indicates the position where the initial mousePressEvent occured, that started the mouse interaction.
The default implementation does nothing.
Reimplemented from QCPLayerable.
|
protectedvirtual |
This event gets called when the user presses a mouse button while the cursor is over the layerable.
Whether a cursor is over the layerable is decided by a preceding call to selectTest.
The current pixel position of the cursor on the QCustomPlot widget is accessible via event->pos(). The parameter details contains layerable-specific details about the hit, which were generated in the previous call to selectTest. For example, One-dimensional plottables like QCPGraph or QCPBars convey the clicked data point in the details parameter, as QCPDataSelection packed as QVariant. Multi-part objects convey the specific SelectablePart that was hit (e.g. QCPAxis::SelectablePart in the case of axes).
QCustomPlot uses an event propagation system that works the same as Qt's system. If your layerable doesn't reimplement the mousePressEvent or explicitly calls event->ignore() in its reimplementation, the event will be propagated to the next layerable in the stacking order.
Once a layerable has accepted the mousePressEvent, it is considered the mouse grabber and will receive all following calls to mouseMoveEvent or mouseReleaseEvent for this mouse interaction (a "mouse interaction" in this context ends with the release).
The default implementation does nothing except explicitly ignoring the event with event->ignore().
Reimplemented from QCPLayerable.
|
protectedvirtual |
This event gets called when the user releases the mouse button, after this layerable has become the mouse grabber by accepting the preceding mousePressEvent.
The current pixel position of the cursor on the QCustomPlot widget is accessible via event->pos(). The parameter startPos indicates the position where the initial mousePressEvent occured, that started the mouse interaction.
The default implementation does nothing.
Reimplemented from QCPLayerable.
| void QCPColorScale::rescaleDataRange | ( | bool | onlyVisibleMaps | ) |
Changes the data range such that all color maps associated with this color scale are fully mapped to the gradient in the data dimension.
| void QCPColorScale::setDataRange | ( | const QCPRange & | dataRange | ) |
Sets the range spanned by the color gradient and that is shown by the axis in the color scale.
It is equivalent to calling QCPColorMap::setDataRange on any of the connected color maps. It is also equivalent to directly accessing the axis and setting its range with QCPAxis::setRange.
| void QCPColorScale::setDataScaleType | ( | QCPAxis::ScaleType | scaleType | ) |
Sets the scale type of the color scale, i.e.
whether values are linearly associated with colors or logarithmically.
It is equivalent to calling QCPColorMap::setDataScaleType on any of the connected color maps. It is also equivalent to directly accessing the axis and setting its scale type with QCPAxis::setScaleType.
| void QCPColorScale::setGradient | ( | const QCPColorGradient & | gradient | ) |
Sets the color gradient that will be used to represent data values.
It is equivalent to calling QCPColorMap::setGradient on any of the connected color maps.
| void QCPColorScale::setLabel | ( | const QString & | str | ) |
Sets the axis label of the color scale.
This is equivalent to calling QCPAxis::setLabel on the internal axis.
| void QCPColorScale::setRangeDrag | ( | bool | enabled | ) |
Sets whether the user can drag the data range (setDataRange).
Note that QCP::iRangeDrag must be in the QCustomPlot's interactions (QCustomPlot::setInteractions) to allow range dragging.
| void QCPColorScale::setRangeZoom | ( | bool | enabled | ) |
Sets whether the user can zoom the data range (setDataRange) by scrolling the mouse wheel.
Note that QCP::iRangeZoom must be in the QCustomPlot's interactions (QCustomPlot::setInteractions) to allow range dragging.
| void QCPColorScale::setType | ( | QCPAxis::AxisType | type | ) |
Sets at which side of the color scale the axis is placed, and thus also its orientation.
Note that after setting type to a different value, the axis returned by axis() will be a different one. The new axis will adopt the following properties from the previous axis: The range, scale type, label and ticker (the latter will be shared and not copied).
|
virtual |
Updates the layout element and sub-elements.
This function is automatically called before every replot by the parent layout element. It is called multiple times, once for every UpdatePhase. The phases are run through in the order of the enum values. For details about what happens at the different phases, see the documentation of UpdatePhase.
Layout elements that have child elements should call the update method of their child elements, and pass the current phase unchanged.
The default implementation executes the automatic margin mechanism in the upMargins phase. Subclasses should make sure to call the base class implementation.
Reimplemented from QCPLayoutElement.
|
protectedvirtual |
This event gets called when the user turns the mouse scroll wheel while the cursor is over the layerable.
Whether a cursor is over the layerable is decided by a preceding call to selectTest.
The current pixel position of the cursor on the QCustomPlot widget is accessible via event->pos().
The event->delta() indicates how far the mouse wheel was turned, which is usually +/- 120 for single rotation steps. However, if the mouse wheel is turned rapidly, multiple steps may accumulate to one event, making event->delta() larger. On the other hand, if the wheel has very smooth steps or none at all, the delta may be smaller.
The default implementation does nothing.
Reimplemented from QCPLayerable.