Vespucci
1.0.0
|
Holds multiple axes and arranges them in a rectangular shape. More...
#include <qcustomplot.h>
Public Member Functions | |
QCPAxisRect (QCustomPlot *parentPlot, bool setupDefaultAxes=true) | |
virtual | ~QCPAxisRect () |
QPixmap | background () const |
bool | backgroundScaled () const |
Qt::AspectRatioMode | backgroundScaledMode () const |
Qt::Orientations | rangeDrag () const |
Qt::Orientations | rangeZoom () const |
QCPAxis * | rangeDragAxis (Qt::Orientation orientation) |
QCPAxis * | rangeZoomAxis (Qt::Orientation orientation) |
double | rangeZoomFactor (Qt::Orientation orientation) |
void | setBackground (const QPixmap &pm) |
void | setBackground (const QPixmap &pm, bool scaled, Qt::AspectRatioMode mode=Qt::KeepAspectRatioByExpanding) |
void | setBackground (const QBrush &brush) |
void | setBackgroundScaled (bool scaled) |
void | setBackgroundScaledMode (Qt::AspectRatioMode mode) |
void | setRangeDrag (Qt::Orientations orientations) |
void | setRangeZoom (Qt::Orientations orientations) |
void | setRangeDragAxes (QCPAxis *horizontal, QCPAxis *vertical) |
void | setRangeZoomAxes (QCPAxis *horizontal, QCPAxis *vertical) |
void | setRangeZoomFactor (double horizontalFactor, double verticalFactor) |
void | setRangeZoomFactor (double factor) |
int | axisCount (QCPAxis::AxisType type) const |
QCPAxis * | axis (QCPAxis::AxisType type, int index=0) const |
QList< QCPAxis * > | axes (QCPAxis::AxisTypes types) const |
QList< QCPAxis * > | axes () const |
QCPAxis * | addAxis (QCPAxis::AxisType type, QCPAxis *axis=0) |
QList< QCPAxis * > | addAxes (QCPAxis::AxisTypes types) |
bool | removeAxis (QCPAxis *axis) |
QCPLayoutInset * | insetLayout () const |
void | setupFullAxesBox (bool connectRanges=false) |
QList< QCPAbstractPlottable * > | plottables () const |
QList< QCPGraph * > | graphs () const |
QList< QCPAbstractItem * > | items () const |
int | left () const |
int | right () const |
int | top () const |
int | bottom () const |
int | width () const |
int | height () const |
QSize | size () const |
QPoint | topLeft () const |
QPoint | topRight () const |
QPoint | bottomLeft () const |
QPoint | bottomRight () const |
QPoint | center () const |
virtual void | update (UpdatePhase phase) |
virtual QList< QCPLayoutElement * > | elements (bool recursive) const |
Public Member Functions inherited from QCPLayoutElement | |
QCPLayoutElement (QCustomPlot *parentPlot=0) | |
virtual | ~QCPLayoutElement () |
QCPLayout * | layout () const |
QRect | rect () const |
QRect | outerRect () const |
QMargins | margins () const |
QMargins | minimumMargins () const |
QCP::MarginSides | autoMargins () const |
QSize | minimumSize () const |
QSize | maximumSize () const |
QCPMarginGroup * | marginGroup (QCP::MarginSide side) const |
QHash< QCP::MarginSide, QCPMarginGroup * > | marginGroups () const |
void | setOuterRect (const QRect &rect) |
void | setMargins (const QMargins &margins) |
void | setMinimumMargins (const QMargins &margins) |
void | setAutoMargins (QCP::MarginSides sides) |
void | setMinimumSize (const QSize &size) |
void | setMinimumSize (int width, int height) |
void | setMaximumSize (const QSize &size) |
void | setMaximumSize (int width, int height) |
void | setMarginGroup (QCP::MarginSides sides, QCPMarginGroup *group) |
virtual QSize | minimumSizeHint () const |
virtual QSize | maximumSizeHint () const |
virtual double | selectTest (const QPointF &pos, bool onlySelectable, QVariant *details=0) const |
Public Member Functions inherited from QCPLayerable | |
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) |
bool | realVisibility () const |
Protected Member Functions | |
virtual void | applyDefaultAntialiasingHint (QCPPainter *painter) const |
virtual void | draw (QCPPainter *painter) |
virtual int | calculateAutoMargin (QCP::MarginSide side) |
virtual void | mousePressEvent (QMouseEvent *event) |
virtual void | mouseMoveEvent (QMouseEvent *event) |
virtual void | mouseReleaseEvent (QMouseEvent *event) |
virtual void | wheelEvent (QWheelEvent *event) |
void | drawBackground (QCPPainter *painter) |
void | updateAxesOffset (QCPAxis::AxisType type) |
Protected Member Functions inherited from QCPLayoutElement | |
virtual void | mouseDoubleClickEvent (QMouseEvent *event) |
virtual void | parentPlotInitialized (QCustomPlot *parentPlot) |
Protected Member Functions inherited from QCPLayerable | |
virtual QCP::Interaction | selectionCategory () const |
virtual QRect | clipRect () const |
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 |
Friends | |
class | QCustomPlot |
Additional Inherited Members | |
Public Types inherited from QCPLayoutElement | |
enum | UpdatePhase { upPreparation, upMargins, upLayout } |
Signals inherited from QCPLayerable | |
void | layerChanged (QCPLayer *newLayer) |
Holds multiple axes and arranges them in a rectangular shape.
This class represents an axis rect, a rectangular area that is bounded on all sides with an arbitrary number of axes.
Initially QCustomPlot has one axis rect, accessible via QCustomPlot::axisRect(). However, the layout system allows to have multiple axis rects, e.g. arranged in a grid layout (QCustomPlot::plotLayout).
By default, QCPAxisRect comes with four axes, at bottom, top, left and right. They can be accessed via axis by providing the respective axis type (QCPAxis::AxisType) and index. If you need all axes in the axis rect, use axes. The top and right axes are set to be invisible initially (QCPAxis::setVisible). To add more axes to a side, use addAxis or addAxes. To remove an axis, use removeAxis.
The axis rect layerable itself only draws a background pixmap or color, if specified (setBackground). It is placed on the "background" layer initially (see QCPLayer for an explanation of the QCustomPlot layer system). The axes that are held by the axis rect can be placed on other layers, independently of the axis rect.
Every axis rect has a child layout of type QCPLayoutInset. It is accessible via insetLayout and can be used to have other layout elements (or even other layouts with multiple elements) hovering inside the axis rect.
If an axis rect is clicked and dragged, it processes this by moving certain axis ranges. The behaviour can be controlled with setRangeDrag and setRangeDragAxes. If the mouse wheel is scrolled while the cursor is on the axis rect, certain axes are scaled. This is controllable via setRangeZoom, setRangeZoomAxes and setRangeZoomFactor. These interactions are only enabled if QCustomPlot::setInteractions contains QCP::iRangeDrag and QCP::iRangeZoom.
Definition at line 2022 of file qcustomplot.h.
|
explicit |
Creates a QCPAxisRect instance and sets default values. An axis is added for each of the four sides, the top and right axes are set invisible initially.
Definition at line 12231 of file qcustomplot.cpp.
|
virtual |
Definition at line 12275 of file qcustomplot.cpp.
QList< QCPAxis * > QCPAxisRect::addAxes | ( | QCPAxis::AxisTypes | types | ) |
Adds a new axis with addAxis to each axis rect side specified in types. This may be an or
-combination of QCPAxis::AxisType, so axes can be added to multiple sides at once.
Returns a list of the added axes.
Definition at line 12412 of file qcustomplot.cpp.
QCPAxis * QCPAxisRect::addAxis | ( | QCPAxis::AxisType | type, |
QCPAxis * | axis = 0 |
||
) |
Adds a new axis to the axis rect side specified with type, and returns it. If axis is 0, a new QCPAxis instance is created internally.
You may inject QCPAxis instances (or sublasses of QCPAxis) by setting axis to an axis that was previously created outside QCustomPlot. It is important to note that QCustomPlot takes ownership of the axis, so you may not delete it afterwards. Further, the axis must have been created with this axis rect as parent and with the same axis type as specified in type. If this is not the case, a debug output is generated, the axis is not added, and the method returns 0.
This method can not be used to move axis between axis rects. The same axis instance must not be added multiple times to the same or different axis rects.
If an axis rect side already contains one or more axes, the lower and upper endings of the new axis (QCPAxis::setLowerEnding, QCPAxis::setUpperEnding) are set to QCPLineEnding::esHalfBar.
Definition at line 12370 of file qcustomplot.cpp.
|
protectedvirtual |
Reimplemented from QCPLayoutElement.
Definition at line 12672 of file qcustomplot.cpp.
QList< QCPAxis * > QCPAxisRect::axes | ( | QCPAxis::AxisTypes | types | ) | const |
Returns all axes on the axis rect sides specified with types.
types may be a single QCPAxis::AxisType or an or
-combination, to get the axes of multiple sides.
Definition at line 12321 of file qcustomplot.cpp.
QList< QCPAxis * > QCPAxisRect::axes | ( | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Returns all axes of this axis rect.
Definition at line 12339 of file qcustomplot.cpp.
QCPAxis * QCPAxisRect::axis | ( | QCPAxis::AxisType | type, |
int | index = 0 |
||
) | const |
Returns the axis with the given index on the axis rect side specified with type.
Definition at line 12300 of file qcustomplot.cpp.
int QCPAxisRect::axisCount | ( | QCPAxis::AxisType | type | ) | const |
Returns the number of axes on the axis rect side specified with type.
Definition at line 12290 of file qcustomplot.cpp.
|
inline |
Definition at line 2037 of file qcustomplot.h.
|
inline |
Definition at line 2038 of file qcustomplot.h.
|
inline |
Definition at line 2039 of file qcustomplot.h.
|
inline |
Returns the pixel position of the bottom border of this axis rect. Margins are not taken into account here, so the returned value is with respect to the inner rect.
Definition at line 2078 of file qcustomplot.h.
|
inline |
Returns the bottom left corner of this axis rect in pixels. Margins are not taken into account here, so the returned value is with respect to the inner rect.
Definition at line 2084 of file qcustomplot.h.
|
inline |
Returns the bottom right corner of this axis rect in pixels. Margins are not taken into account here, so the returned value is with respect to the inner rect.
Definition at line 2085 of file qcustomplot.h.
|
protectedvirtual |
Reimplemented from QCPLayoutElement.
Definition at line 12957 of file qcustomplot.cpp.
|
inline |
Returns the center of this axis rect in pixels. Margins are not taken into account here, so the returned value is with respect to the inner rect.
Definition at line 2086 of file qcustomplot.h.
|
protectedvirtual |
Reimplemented from QCPLayoutElement.
Reimplemented in QCPColorScaleAxisRectPrivate.
Definition at line 12678 of file qcustomplot.cpp.
|
protected |
Definition at line 12902 of file qcustomplot.cpp.
|
virtual |
Returns a list of all child elements in this layout element. If recursive is true, all sub-child elements are included in the list, too.
Reimplemented from QCPLayoutElement.
Definition at line 12659 of file qcustomplot.cpp.
QList< QCPGraph * > QCPAxisRect::graphs | ( | ) | const |
Returns a list of all the graphs that are associated with this axis rect.
A graph is considered associated with an axis rect if its key or value axis (or both) is in this axis rect.
Definition at line 12576 of file qcustomplot.cpp.
|
inline |
Returns the pixel height of this axis rect. Margins are not taken into account here, so the returned value is with respect to the inner rect.
Definition at line 2080 of file qcustomplot.h.
|
inline |
Returns the inset layout of this axis rect. It can be used to place other layout elements (or even layouts with multiple other elements) inside/on top of an axis rect.
Definition at line 2067 of file qcustomplot.h.
QList< QCPAbstractItem * > QCPAxisRect::items | ( | ) | const |
Returns a list of all the items that are associated with this axis rect.
An item is considered associated with an axis rect if any of its positions has key or value axis set to an axis that is in this axis rect, or if any of its positions has QCPItemPosition::setAxisRect set to the axis rect, or if the clip axis rect (QCPAbstractItem::setClipAxisRect) is set to this axis rect.
Definition at line 12598 of file qcustomplot.cpp.
|
inline |
Returns the pixel position of the left border of this axis rect. Margins are not taken into account here, so the returned value is with respect to the inner rect.
Definition at line 2075 of file qcustomplot.h.
|
protectedvirtual |
This event is called, if the mouse is moved inside the outer rect of this layout element.
Reimplemented from QCPLayoutElement.
Definition at line 13013 of file qcustomplot.cpp.
|
protectedvirtual |
This event is called, if the mouse was pressed while being inside the outer rect of this layout element.
Reimplemented from QCPLayoutElement.
Definition at line 12983 of file qcustomplot.cpp.
|
protectedvirtual |
This event is called, if the mouse was previously pressed inside the outer rect of this layout element and is now released.
Reimplemented from QCPLayoutElement.
Definition at line 13058 of file qcustomplot.cpp.
QList< QCPAbstractPlottable * > QCPAxisRect::plottables | ( | ) | const |
Returns a list of all the plottables that are associated with this axis rect.
A plottable is considered associated with an axis rect if its key or value axis (or both) is in this axis rect.
Definition at line 12556 of file qcustomplot.cpp.
|
inline |
Definition at line 2040 of file qcustomplot.h.
QCPAxis * QCPAxisRect::rangeDragAxis | ( | Qt::Orientation | orientation | ) |
Returns the range drag axis of the orientation provided.
Definition at line 12767 of file qcustomplot.cpp.
|
inline |
Definition at line 2041 of file qcustomplot.h.
QCPAxis * QCPAxisRect::rangeZoomAxis | ( | Qt::Orientation | orientation | ) |
Returns the range zoom axis of the orientation provided.
Definition at line 12777 of file qcustomplot.cpp.
double QCPAxisRect::rangeZoomFactor | ( | Qt::Orientation | orientation | ) |
Returns the range zoom factor of the orientation provided.
Definition at line 12787 of file qcustomplot.cpp.
bool QCPAxisRect::removeAxis | ( | QCPAxis * | axis | ) |
Removes the specified axis from the axis rect and deletes it.
Returns true on success, i.e. if axis was a valid axis in this axis rect.
Definition at line 12433 of file qcustomplot.cpp.
|
inline |
Returns the pixel position of the right border of this axis rect. Margins are not taken into account here, so the returned value is with respect to the inner rect.
Definition at line 2076 of file qcustomplot.h.
void QCPAxisRect::setBackground | ( | const QPixmap & | pm | ) |
Sets pm as the axis background pixmap. The axis background pixmap will be drawn inside the axis rect. Since axis rects place themselves on the "background" layer by default, the axis rect backgrounds are usually drawn below everything else.
For cases where the provided pixmap doesn't have the same size as the axis rect, scaling can be enabled with setBackgroundScaled and the scaling mode (i.e. whether and how the aspect ratio is preserved) can be set with setBackgroundScaledMode. To set all these options in one call, consider using the overloaded version of this function.
Below the pixmap, the axis rect may be optionally filled with a brush, if specified with setBackground(const QBrush &brush).
Definition at line 12698 of file qcustomplot.cpp.
void QCPAxisRect::setBackground | ( | const QPixmap & | pm, |
bool | scaled, | ||
Qt::AspectRatioMode | mode = Qt::KeepAspectRatioByExpanding |
||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Allows setting the background pixmap of the axis rect, whether it shall be scaled and how it shall be scaled in one call.
Definition at line 12729 of file qcustomplot.cpp.
void QCPAxisRect::setBackground | ( | const QBrush & | brush | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Sets brush as the background brush. The axis rect background will be filled with this brush. Since axis rects place themselves on the "background" layer by default, the axis rect backgrounds are usually drawn below everything else.
The brush will be drawn before (under) any background pixmap, which may be specified with setBackground(const QPixmap &pm).
To disable drawing of a background brush, set brush to Qt::NoBrush.
Definition at line 12717 of file qcustomplot.cpp.
void QCPAxisRect::setBackgroundScaled | ( | bool | scaled | ) |
Sets whether the axis background pixmap shall be scaled to fit the axis rect or not. If scaled is set to true, you may control whether and how the aspect ratio of the original pixmap is preserved with setBackgroundScaledMode.
Note that the scaled version of the original pixmap is buffered, so there is no performance penalty on replots. (Except when the axis rect dimensions are changed continuously.)
Definition at line 12747 of file qcustomplot.cpp.
void QCPAxisRect::setBackgroundScaledMode | ( | Qt::AspectRatioMode | mode | ) |
If scaling of the axis background pixmap is enabled (setBackgroundScaled), use this function to define whether and how the aspect ratio of the original pixmap passed to setBackground is preserved.
Definition at line 12757 of file qcustomplot.cpp.
void QCPAxisRect::setRangeDrag | ( | Qt::Orientations | orientations | ) |
Sets which axis orientation may be range dragged by the user with mouse interaction. What orientation corresponds to which specific axis can be set with setRangeDragAxes(QCPAxis *horizontal, QCPAxis *vertical). By default, the horizontal axis is the bottom axis (xAxis) and the vertical axis is the left axis (yAxis).
To disable range dragging entirely, pass 0 as orientations or remove QCP::iRangeDrag from QCustomPlot::setInteractions. To enable range dragging for both directions, pass Qt::Horizontal | Qt::Vertical
as orientations.
In addition to setting orientations to a non-zero value, make sure QCustomPlot::setInteractions contains QCP::iRangeDrag to enable the range dragging interaction.
Definition at line 12808 of file qcustomplot.cpp.
Sets the axes whose range will be dragged when setRangeDrag enables mouse range dragging on the QCustomPlot widget.
Definition at line 12839 of file qcustomplot.cpp.
void QCPAxisRect::setRangeZoom | ( | Qt::Orientations | orientations | ) |
Sets which axis orientation may be zoomed by the user with the mouse wheel. What orientation corresponds to which specific axis can be set with setRangeZoomAxes(QCPAxis *horizontal, QCPAxis *vertical). By default, the horizontal axis is the bottom axis (xAxis) and the vertical axis is the left axis (yAxis).
To disable range zooming entirely, pass 0 as orientations or remove QCP::iRangeZoom from QCustomPlot::setInteractions. To enable range zooming for both directions, pass Qt::Horizontal | Qt::Vertical
as orientations.
In addition to setting orientations to a non-zero value, make sure QCustomPlot::setInteractions contains QCP::iRangeZoom to enable the range zooming interaction.
Definition at line 12828 of file qcustomplot.cpp.
Sets the axes whose range will be zoomed when setRangeZoom enables mouse wheel zooming on the QCustomPlot widget. The two axes can be zoomed with different strengths, when different factors are passed to setRangeZoomFactor(double horizontalFactor, double verticalFactor).
Definition at line 12852 of file qcustomplot.cpp.
void QCPAxisRect::setRangeZoomFactor | ( | double | horizontalFactor, |
double | verticalFactor | ||
) |
Sets how strong one rotation step of the mouse wheel zooms, when range zoom was activated with setRangeZoom. The two parameters horizontalFactor and verticalFactor provide a way to let the horizontal axis zoom at different rates than the vertical axis. Which axis is horizontal and which is vertical, can be set with setRangeZoomAxes.
When the zoom factor is greater than one, scrolling the mouse wheel backwards (towards the user) will zoom in (make the currently visible range smaller). For zoom factors smaller than one, the same scrolling direction will zoom out.
Definition at line 12868 of file qcustomplot.cpp.
void QCPAxisRect::setRangeZoomFactor | ( | double | factor | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Sets both the horizontal and vertical zoom factor.
Definition at line 12878 of file qcustomplot.cpp.
void QCPAxisRect::setupFullAxesBox | ( | bool | connectRanges = false | ) |
Convenience function to create an axis on each side that doesn't have any axes yet and set their visibility to true. Further, the top/right axes are assigned the following properties of the bottom/left axes:
Tick labels (QCPAxis::setTickLabels) of the right and top axes are set to false.
If connectRanges is true, the rangeChanged signals of the bottom and left axes are connected to the QCPAxis::setRange slots of the top and right axes.
Definition at line 12479 of file qcustomplot.cpp.
|
inline |
Returns the pixel size of this axis rect. Margins are not taken into account here, so the returned value is with respect to the inner rect.
Definition at line 2081 of file qcustomplot.h.
|
inline |
Returns the pixel position of the top border of this axis rect. Margins are not taken into account here, so the returned value is with respect to the inner rect.
Definition at line 2077 of file qcustomplot.h.
|
inline |
Returns the top left corner of this axis rect in pixels. Margins are not taken into account here, so the returned value is with respect to the inner rect.
Definition at line 2082 of file qcustomplot.h.
|
inline |
Returns the top right corner of this axis rect in pixels. Margins are not taken into account here, so the returned value is with respect to the inner rect.
Definition at line 2083 of file qcustomplot.h.
|
virtual |
This method is called automatically upon replot and doesn't need to be called by users of QCPAxisRect.
Calls the base class implementation to update the margins (see QCPLayoutElement::update), and finally passes the rect to the inset layout (insetLayout) and calls its QCPInsetLayout::update function.
Reimplemented from QCPLayoutElement.
Definition at line 12633 of file qcustomplot.cpp.
|
protected |
Definition at line 12936 of file qcustomplot.cpp.
|
protectedvirtual |
This event is called, if the mouse wheel is scrolled while the cursor is inside the rect of this layout element.
Reimplemented from QCPLayoutElement.
Definition at line 13083 of file qcustomplot.cpp.
|
inline |
Returns the pixel width of this axis rect. Margins are not taken into account here, so the returned value is with respect to the inner rect.
Definition at line 2079 of file qcustomplot.h.
|
friend |
Definition at line 2127 of file qcustomplot.h.
|
protected |
Definition at line 2105 of file qcustomplot.h.
|
protected |
Definition at line 2108 of file qcustomplot.h.
|
protected |
Definition at line 2094 of file qcustomplot.h.
|
protected |
Definition at line 2095 of file qcustomplot.h.
|
protected |
Definition at line 2097 of file qcustomplot.h.
|
protected |
Definition at line 2098 of file qcustomplot.h.
|
protected |
Definition at line 2107 of file qcustomplot.h.
|
protected |
Definition at line 2106 of file qcustomplot.h.
|
protected |
Definition at line 2104 of file qcustomplot.h.
|
protected |
Definition at line 2104 of file qcustomplot.h.
|
protected |
Definition at line 2099 of file qcustomplot.h.
|
protected |
Definition at line 2105 of file qcustomplot.h.
|
protected |
Definition at line 2100 of file qcustomplot.h.
|
protected |
Definition at line 2101 of file qcustomplot.h.
|
protected |
Definition at line 2101 of file qcustomplot.h.
|
protected |
Definition at line 2100 of file qcustomplot.h.
|
protected |
Definition at line 2102 of file qcustomplot.h.
|
protected |
Definition at line 2102 of file qcustomplot.h.
|
protected |
Definition at line 2101 of file qcustomplot.h.
|
protected |
Definition at line 2101 of file qcustomplot.h.
|
protected |
Definition at line 2096 of file qcustomplot.h.