QCPAxisRect

Search for usage in LXR

Inheritance diagram for QCPAxisRect:

Public Member Functions

 QCPAxisRect (QCustomPlot *parentPlot, bool setupDefaultAxes=true)
 
QList< QCPAxis * > addAxes (QCPAxis::AxisTypes types)
 
QCPAxisaddAxis (QCPAxis::AxisType type, QCPAxis *axis=nullptr)
 
QList< QCPAxis * > axes () const
 
QList< QCPAxis * > axes (QCPAxis::AxisTypes types) const
 
QCPAxisaxis (QCPAxis::AxisType type, int index=0) const
 
int axisCount (QCPAxis::AxisType type) const
 
QPixmap background () const
 
QBrush backgroundBrush () const
 
bool backgroundScaled () const
 
Qt::AspectRatioMode backgroundScaledMode () const
 
int bottom () const
 
QPoint bottomLeft () const
 
QPoint bottomRight () const
 
QPoint center () const
 
virtual QList< QCPLayoutElement * > elements (bool recursive) const override
 
QList< QCPGraph * > graphs () const
 
int height () const
 
QCPLayoutInsetinsetLayout () const
 
QList< QCPAbstractItem * > items () const
 
int left () const
 
QList< QCPAbstractPlottable * > plottables () const
 
Qt::Orientations rangeDrag () const
 
QList< QCPAxis * > rangeDragAxes (Qt::Orientation orientation)
 
QCPAxisrangeDragAxis (Qt::Orientation orientation)
 
Qt::Orientations rangeZoom () const
 
QList< QCPAxis * > rangeZoomAxes (Qt::Orientation orientation)
 
QCPAxisrangeZoomAxis (Qt::Orientation orientation)
 
double rangeZoomFactor (Qt::Orientation orientation)
 
bool removeAxis (QCPAxis *axis)
 
int right () const
 
void setBackground (const QBrush &brush)
 
void setBackground (const QPixmap &pm)
 
void setBackground (const QPixmap &pm, bool scaled, Qt::AspectRatioMode mode=Qt::KeepAspectRatioByExpanding)
 
void setBackgroundScaled (bool scaled)
 
void setBackgroundScaledMode (Qt::AspectRatioMode mode)
 
void setRangeDrag (Qt::Orientations orientations)
 
void setRangeDragAxes (QCPAxis *horizontal, QCPAxis *vertical)
 
void setRangeDragAxes (QList< QCPAxis * > axes)
 
void setRangeDragAxes (QList< QCPAxis * > horizontal, QList< QCPAxis * > vertical)
 
void setRangeZoom (Qt::Orientations orientations)
 
void setRangeZoomAxes (QCPAxis *horizontal, QCPAxis *vertical)
 
void setRangeZoomAxes (QList< QCPAxis * > axes)
 
void setRangeZoomAxes (QList< QCPAxis * > horizontal, QList< QCPAxis * > vertical)
 
void setRangeZoomFactor (double factor)
 
void setRangeZoomFactor (double horizontalFactor, double verticalFactor)
 
void setupFullAxesBox (bool connectRanges=false)
 
QSize size () const
 
int top () const
 
QPoint topLeft () const
 
QPoint topRight () const
 
virtual void update (UpdatePhase phase) override
 
int width () const
 
void zoom (const QRectF &pixelRect)
 
void zoom (const QRectF &pixelRect, const QList< QCPAxis * > &affectedAxes)
 
- Public Member Functions inherited from QCPLayoutElement
 QCPLayoutElement (QCustomPlot *parentPlot=nullptr)
 
QCP::MarginSides autoMargins () const
 
QCPLayoutlayout () const
 
QCPMarginGroupmarginGroup (QCP::MarginSide side) const
 
QHash< QCP::MarginSide, QCPMarginGroup * > marginGroups () const
 
QMargins margins () const
 
virtual QSize maximumOuterSizeHint () const
 
QSize maximumSize () const
 
QMargins minimumMargins () const
 
virtual QSize minimumOuterSizeHint () const
 
QSize minimumSize () const
 
QRect outerRect () const
 
QRect rect () const
 
virtual double selectTest (const QPointF &pos, bool onlySelectable, QVariant *details=nullptr) const override
 
void setAutoMargins (QCP::MarginSides sides)
 
void setMarginGroup (QCP::MarginSides sides, QCPMarginGroup *group)
 
void setMargins (const QMargins &margins)
 
void setMaximumSize (const QSize &size)
 
void setMaximumSize (int width, int height)
 
void setMinimumMargins (const QMargins &margins)
 
void setMinimumSize (const QSize &size)
 
void setMinimumSize (int width, int height)
 
void setOuterRect (const QRect &rect)
 
void setSizeConstraintRect (SizeConstraintRect constraintRect)
 
SizeConstraintRect sizeConstraintRect () const
 
- Public Member Functions inherited from QCPLayerable
 QCPLayerable (QCustomPlot *plot, QString targetLayer=QString(), QCPLayerable *parentLayerable=nullptr)
 
bool antialiased () const
 
QCPLayerlayer () const
 
QCPLayerableparentLayerable () const
 
QCustomPlotparentPlot () const
 
bool realVisibility () const
 
void setAntialiased (bool enabled)
 
bool setLayer (const QString &layerName)
 
Q_SLOT bool setLayer (QCPLayer *layer)
 
void setVisible (bool on)
 
bool visible () const
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
bool blockSignals (bool block)
 
const QObjectListchildren () const const
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectInfo ()
 
void dumpObjectInfo () const const
 
void dumpObjectTree ()
 
void dumpObjectTree () const const
 
QList< QByteArraydynamicPropertyNames () const const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
bool inherits (const char *className) const const
 
void installEventFilter (QObject *filterObj)
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const const
 
void moveToThread (QThread *targetThread)
 
QString objectName () const const
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
QVariant property (const char *name) const const
 
 Q_CLASSINFO (Name, Value)
 
 Q_DISABLE_COPY (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_EMIT Q_EMIT
 
 Q_ENUM (...)
 
 Q_ENUM_NS (...)
 
 Q_ENUMS (...)
 
 Q_FLAG (...)
 
 Q_FLAG_NS (...)
 
 Q_FLAGS (...)
 
 Q_GADGET Q_GADGET
 
 Q_INTERFACES (...)
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_OBJECT Q_OBJECT
 
 Q_PROPERTY (...)
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SLOT Q_SLOT
 
 Q_SLOTS Q_SLOTS
 
qFindChild (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
 
QList< T > qFindChildren (const QObject *obj, const QString &name)
 
qobject_cast (const QObject *object)
 
qobject_cast (QObject *object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 
void removeEventFilter (QObject *obj)
 
void setObjectName (const QString &name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool signalsBlocked () const const
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
 
QThreadthread () const const
 

Protected Member Functions

virtual void applyDefaultAntialiasingHint (QCPPainter *painter) const override
 
virtual int calculateAutoMargin (QCP::MarginSide side) override
 
virtual void draw (QCPPainter *painter) override
 
void drawBackground (QCPPainter *painter)
 
virtual void layoutChanged () override
 
virtual void mouseMoveEvent (QMouseEvent *event, const QPointF &startPos) override
 
virtual void mousePressEvent (QMouseEvent *event, const QVariant &details) override
 
virtual void mouseReleaseEvent (QMouseEvent *event, const QPointF &startPos) override
 
void updateAxesOffset (QCPAxis::AxisType type)
 
virtual void wheelEvent (QWheelEvent *event) override
 
- Protected Member Functions inherited from QCPLayoutElement
virtual void parentPlotInitialized (QCustomPlot *parentPlot) override
 
- Protected Member Functions inherited from QCPLayerable
void applyAntialiasingHint (QCPPainter *painter, bool localAntialiased, QCP::AntialiasedElement overrideElement) const
 
virtual QRect clipRect () const
 
virtual void deselectEvent (bool *selectionStateChanged)
 
void initializeParentPlot (QCustomPlot *parentPlot)
 
virtual void mouseDoubleClickEvent (QMouseEvent *event, const QVariant &details)
 
bool moveToLayer (QCPLayer *layer, bool prepend)
 
virtual void selectEvent (QMouseEvent *event, bool additive, const QVariant &details, bool *selectionStateChanged)
 
virtual QCP::Interaction selectionCategory () const
 
void setParentLayerable (QCPLayerable *parentLayerable)
 
- Protected Member Functions inherited from QObject
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
int receivers (const char *signal) const const
 
QObjectsender () const const
 
int senderSignalIndex () const const
 
virtual void timerEvent (QTimerEvent *event)
 

Protected Attributes

QCP::AntialiasedElements mAADragBackup
 
QHash< QCPAxis::AxisType, QList< QCPAxis * > > mAxes
 
QBrush mBackgroundBrush
 
QPixmap mBackgroundPixmap
 
bool mBackgroundScaled
 
Qt::AspectRatioMode mBackgroundScaledMode
 
bool mDragging
 
QList< QCPRangemDragStartHorzRange
 
QList< QCPRangemDragStartVertRange
 
QCPLayoutInsetmInsetLayout
 
QCP::AntialiasedElements mNotAADragBackup
 
Qt::Orientations mRangeDrag
 
QList< QPointer< QCPAxis > > mRangeDragHorzAxis
 
QList< QPointer< QCPAxis > > mRangeDragVertAxis
 
Qt::Orientations mRangeZoom
 
double mRangeZoomFactorHorz
 
double mRangeZoomFactorVert
 
QList< QPointer< QCPAxis > > mRangeZoomHorzAxis
 
QList< QPointer< QCPAxis > > mRangeZoomVertAxis
 
QPixmap mScaledBackgroundPixmap
 
- Protected Attributes inherited from QCPLayoutElement
QCP::MarginSides mAutoMargins
 
QHash< QCP::MarginSide, QCPMarginGroup * > mMarginGroups
 
QMargins mMargins
 
QSize mMaximumSize
 
QMargins mMinimumMargins
 
QSize mMinimumSize
 
QRect mOuterRect
 
QCPLayoutmParentLayout
 
QRect mRect
 
SizeConstraintRect mSizeConstraintRect
 
- Protected Attributes inherited from QCPLayerable
bool mAntialiased
 
QCPLayermLayer
 
QPointer< QCPLayerablemParentLayerable
 
QCustomPlotmParentPlot
 
bool mVisible
 

Additional Inherited Members

- Public Types inherited from QCPLayoutElement
enum  SizeConstraintRect { scrInnerRect, scrOuterRect }
 
enum  UpdatePhase { upPreparation, upMargins, upLayout }
 
- Properties inherited from QObject
 objectName
 
- Signals inherited from QCPLayerable
void layerChanged (QCPLayer *newLayer)
 
- Static Public Member Functions inherited from QObject
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
- Public Attributes inherited from QObject
typedef QObjectList
 

Detailed Description

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.

Overview of the spacings and paddings that define the geometry of an axis. The dashed line on the far left indicates the viewport/widget border.

Definition at line 4870 of file qcustomplot.h.

Constructor & Destructor Documentation

◆ QCPAxisRect()

QCPAxisRect::QCPAxisRect ( QCustomPlot parentPlot,
bool  setupDefaultAxes = true 
)
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 17551 of file qcustomplot.cpp.

Member Function Documentation

◆ addAxes()

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.

See also
addAxis, setupFullAxesBox

Definition at line 17745 of file qcustomplot.cpp.

◆ addAxis()

QCPAxis * QCPAxisRect::addAxis ( QCPAxis::AxisType  type,
QCPAxis axis = nullptr 
)

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. QCustomPlot owns the returned axis, so if you want to remove an axis, use removeAxis instead of deleting it manually.

You may inject QCPAxis instances (or subclasses 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 nullptr.

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.

See also
addAxes, setupFullAxesBox

Definition at line 17690 of file qcustomplot.cpp.

◆ applyDefaultAntialiasingHint()

void QCPAxisRect::applyDefaultAntialiasingHint ( QCPPainter painter) const
overrideprotectedvirtual

This function applies the default antialiasing setting to the specified painter, using the function applyAntialiasingHint. It is the antialiasing state the painter is put in, when draw is called on the layerable. If the layerable has multiple entities whose antialiasing setting may be specified individually, this function should set the antialiasing state of the most prominent entity. In this case however, the draw function usually calls the specialized versions of this function before drawing each entity, effectively overriding the setting of the default antialiasing hint.

First example: QCPGraph has multiple entities that have an antialiasing setting: The graph line, fills and scatters. Those can be configured via QCPGraph::setAntialiased, QCPGraph::setAntialiasedFill and QCPGraph::setAntialiasedScatters. Consequently, there isn't only the QCPGraph::applyDefaultAntialiasingHint function (which corresponds to the graph line's antialiasing), but specialized ones like QCPGraph::applyFillAntialiasingHint and QCPGraph::applyScattersAntialiasingHint. So before drawing one of those entities, QCPGraph::draw calls the respective specialized applyAntialiasingHint function.

Second example: QCPItemLine consists only of a line so there is only one antialiasing setting which can be controlled with QCPItemLine::setAntialiased. (This function is inherited by all layerables. The specialized functions, as seen on QCPGraph, must be added explicitly to the respective layerable subclass.) Consequently it only has the normal QCPItemLine::applyDefaultAntialiasingHint. The QCPItemLine::draw function doesn't need to care about setting any antialiasing states, because the default antialiasing hint is already set on the painter when the draw function is called, and that's the state it wants to draw the line with.

Reimplemented from QCPLayoutElement.

Definition at line 18025 of file qcustomplot.cpp.

◆ axes() [1/2]

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 17658 of file qcustomplot.cpp.

◆ axes() [2/2]

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.

See also
axis

Definition at line 17640 of file qcustomplot.cpp.

◆ axis()

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.

See also
axisCount, axes

Definition at line 17619 of file qcustomplot.cpp.

◆ axisCount()

int QCPAxisRect::axisCount ( QCPAxis::AxisType  type) const

Returns the number of axes on the axis rect side specified with type.

See also
axis

Definition at line 17609 of file qcustomplot.cpp.

◆ bottom()

int QCPAxisRect::bottom ( ) const
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 4935 of file qcustomplot.h.

◆ bottomLeft()

QPoint QCPAxisRect::bottomLeft ( ) const
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 4941 of file qcustomplot.h.

◆ bottomRight()

QPoint QCPAxisRect::bottomRight ( ) const
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 4942 of file qcustomplot.h.

◆ calculateAutoMargin()

int QCPAxisRect::calculateAutoMargin ( QCP::MarginSide  side)
overrideprotectedvirtual

Returns the margin size for this side. It is used if automatic margins is enabled for this side (see setAutoMargins). If a minimum margin was set with setMinimumMargins, the returned value will not be smaller than the specified minimum margin.

The default implementation just returns the respective manual margin (setMargins) or the minimum margin, whichever is larger.

Reimplemented from QCPLayoutElement.

Definition at line 18488 of file qcustomplot.cpp.

◆ center()

QPoint QCPAxisRect::center ( ) const
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 4943 of file qcustomplot.h.

◆ draw()

void QCPAxisRect::draw ( QCPPainter painter)
overrideprotectedvirtual

This function draws the layerable with the specified painter. It is only called by QCustomPlot, if the layerable is visible (setVisible).

Before this function is called, the painter's antialiasing state is set via applyDefaultAntialiasingHint, see the documentation there. Further, the clipping rectangle was set to clipRect.

Reimplemented from QCPLayoutElement.

Reimplemented in QCPColorScaleAxisRectPrivate.

Definition at line 18031 of file qcustomplot.cpp.

◆ drawBackground()

void QCPAxisRect::drawBackground ( QCPPainter painter)
protected

Draws the background of this axis rect. It may consist of a background fill (a QBrush) and a pixmap.

If a brush was given via setBackground(const QBrush &brush), this function first draws an according filling inside the axis rect with the provided painter.

Then, if a pixmap was provided via setBackground, this function buffers the scaled version depending on setBackgroundScaled and setBackgroundScaledMode and then draws it inside the axis rect with the provided painter. The scaled version is buffered in mScaledBackgroundPixmap to prevent expensive rescaling at every redraw. It is only updated, when the axis rect has changed in a way that requires a rescale of the background pixmap (this is dependent on the setBackgroundScaledMode), or when a differend axis background pixmap was set.

See also
setBackground, setBackgroundScaled, setBackgroundScaledMode

Definition at line 18433 of file qcustomplot.cpp.

◆ elements()

QList< QCPLayoutElement * > QCPAxisRect::elements ( bool  recursive) const
overridevirtual

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.

Warning
There may be nullptr entries in the returned list. For example, QCPLayoutGrid may have empty cells which yield nullptr at the respective index.

Reimplemented from QCPLayoutElement.

Definition at line 18012 of file qcustomplot.cpp.

◆ graphs()

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.

See also
plottables, items

Definition at line 17929 of file qcustomplot.cpp.

◆ height()

int QCPAxisRect::height ( ) const
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 4937 of file qcustomplot.h.

◆ insetLayout()

QCPLayoutInset * QCPAxisRect::insetLayout ( ) const
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.

See also
QCPLayoutInset

Definition at line 4922 of file qcustomplot.h.

◆ items()

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.

See also
plottables, graphs

Definition at line 17951 of file qcustomplot.cpp.

◆ layoutChanged()

void QCPAxisRect::layoutChanged ( )
overrideprotectedvirtual

Reacts to a change in layout to potentially set the convenience axis pointers QCustomPlot::xAxis, QCustomPlot::yAxis, etc. of the parent QCustomPlot to the respective axes of this axis rect. This is only done if the respective convenience pointer is currently zero and if there is no QCPAxisRect at position (0, 0) of the plot layout.

This automation makes it simpler to replace the main axis rect with a newly created one, without the need to manually reset the convenience pointers.

Reimplemented from QCPLayoutElement.

Definition at line 18513 of file qcustomplot.cpp.

◆ left()

int QCPAxisRect::left ( ) const
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 4932 of file qcustomplot.h.

◆ mouseMoveEvent()

void QCPAxisRect::mouseMoveEvent ( QMouseEvent event,
const QPointF startPos 
)
overrideprotectedvirtual

Event handler for when the mouse is moved on the axis rect. If range dragging was activated in a preceding mousePressEvent, the range is moved accordingly.

See also
mousePressEvent, mouseReleaseEvent

Reimplemented from QCPLayerable.

Definition at line 18571 of file qcustomplot.cpp.

◆ mousePressEvent()

void QCPAxisRect::mousePressEvent ( QMouseEvent event,
const QVariant details 
)
overrideprotectedvirtual

Event handler for when a mouse button is pressed on the axis rect. If the left mouse button is pressed, the range dragging interaction is initialized (the actual range manipulation happens in the mouseMoveEvent).

The mDragging flag is set to true and some anchor points are set that are needed to determine the distance the mouse was dragged in the mouse move/release events later.

See also
mouseMoveEvent, mouseReleaseEvent

Reimplemented from QCPLayerable.

Definition at line 18539 of file qcustomplot.cpp.

◆ mouseReleaseEvent()

void QCPAxisRect::mouseReleaseEvent ( QMouseEvent event,
const QPointF startPos 
)
overrideprotectedvirtual

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 occurred, that started the mouse interaction.

The default implementation does nothing.

See also
mousePressEvent, mouseMoveEvent, mouseDoubleClickEvent, wheelEvent

Reimplemented from QCPLayerable.

Definition at line 18631 of file qcustomplot.cpp.

◆ plottables()

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.

See also
graphs, items

Definition at line 17909 of file qcustomplot.cpp.

◆ rangeDragAxes()

QList< QCPAxis * > QCPAxisRect::rangeDragAxes ( Qt::Orientation  orientation)

Returns all range drag axes of the orientation provided.

See also
rangeZoomAxis, setRangeZoomAxes

Definition at line 18148 of file qcustomplot.cpp.

◆ rangeDragAxis()

QCPAxis * QCPAxisRect::rangeDragAxis ( Qt::Orientation  orientation)

Returns the range drag axis of the orientation provided. If multiple axes were set, returns the first one (use rangeDragAxes to retrieve a list with all set axes).

See also
setRangeDragAxes

Definition at line 18121 of file qcustomplot.cpp.

◆ rangeZoomAxes()

QList< QCPAxis * > QCPAxisRect::rangeZoomAxes ( Qt::Orientation  orientation)

Returns all range zoom axes of the orientation provided.

See also
rangeDragAxis, setRangeDragAxes

Definition at line 18174 of file qcustomplot.cpp.

◆ rangeZoomAxis()

QCPAxis * QCPAxisRect::rangeZoomAxis ( Qt::Orientation  orientation)

Returns the range zoom axis of the orientation provided. If multiple axes were set, returns the first one (use rangeZoomAxes to retrieve a list with all set axes).

See also
setRangeZoomAxes

Definition at line 18135 of file qcustomplot.cpp.

◆ rangeZoomFactor()

double QCPAxisRect::rangeZoomFactor ( Qt::Orientation  orientation)

Returns the range zoom factor of the orientation provided.

See also
setRangeZoomFactor

Definition at line 18200 of file qcustomplot.cpp.

◆ removeAxis()

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.

See also
addAxis

Definition at line 17766 of file qcustomplot.cpp.

◆ right()

int QCPAxisRect::right ( ) const
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 4933 of file qcustomplot.h.

◆ setBackground() [1/3]

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.

See also
setBackground(const QPixmap &pm)

Definition at line 18070 of file qcustomplot.cpp.

◆ setBackground() [2/3]

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).

See also
setBackgroundScaled, setBackgroundScaledMode, setBackground(const QBrush &brush)

Definition at line 18051 of file qcustomplot.cpp.

◆ setBackground() [3/3]

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.

See also
setBackground(const QPixmap &pm), setBackgroundScaled, setBackgroundScaledMode

Definition at line 18082 of file qcustomplot.cpp.

◆ setBackgroundScaled()

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.)

See also
setBackground, setBackgroundScaledMode

Definition at line 18100 of file qcustomplot.cpp.

◆ setBackgroundScaledMode()

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.

See also
setBackground, setBackgroundScaled

Definition at line 18110 of file qcustomplot.cpp.

◆ setRangeDrag()

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 nullptr 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.

See also
setRangeZoom, setRangeDragAxes, QCustomPlot::setNoAntialiasingOnDrag

Definition at line 18221 of file qcustomplot.cpp.

◆ setRangeDragAxes() [1/3]

void QCPAxisRect::setRangeDragAxes ( QCPAxis horizontal,
QCPAxis vertical 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Sets the axes whose range will be dragged when setRangeDrag enables mouse range dragging on the QCustomPlot widget. Pass nullptr if no axis shall be dragged in the respective orientation.

Use the overload taking a list of axes, if multiple axes (more than one per orientation) shall react to dragging interactions.

See also
setRangeZoomAxes

Definition at line 18257 of file qcustomplot.cpp.

◆ setRangeDragAxes() [2/3]

void QCPAxisRect::setRangeDragAxes ( QList< QCPAxis * >  axes)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

This method allows to set up multiple axes to react to horizontal and vertical dragging. The drag orientation that the respective axis will react to is deduced from its orientation (QCPAxis::orientation).

In the unusual case that you wish to e.g. drag a vertically oriented axis with a horizontal drag motion, use the overload taking two separate lists for horizontal and vertical dragging.

Definition at line 18276 of file qcustomplot.cpp.

◆ setRangeDragAxes() [3/3]

void QCPAxisRect::setRangeDragAxes ( QList< QCPAxis * >  horizontal,
QList< QCPAxis * >  vertical 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

This method allows to set multiple axes up to react to horizontal and vertical dragging, and define specifically which axis reacts to which drag orientation (irrespective of the axis orientation).

Definition at line 18295 of file qcustomplot.cpp.

◆ setRangeZoom()

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 nullptr 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.

See also
setRangeZoomFactor, setRangeZoomAxes, setRangeDrag

Definition at line 18241 of file qcustomplot.cpp.

◆ setRangeZoomAxes() [1/3]

void QCPAxisRect::setRangeZoomAxes ( QCPAxis horizontal,
QCPAxis vertical 
)

Sets the axes whose range will be zoomed when setRangeZoom enables mouse wheel zooming on the QCustomPlot widget. Pass nullptr if no axis shall be zoomed in the respective orientation.

The two axes can be zoomed with different strengths, when different factors are passed to setRangeZoomFactor(double horizontalFactor, double verticalFactor).

Use the overload taking a list of axes, if multiple axes (more than one per orientation) shall react to zooming interactions.

See also
setRangeDragAxes

Definition at line 18329 of file qcustomplot.cpp.

◆ setRangeZoomAxes() [2/3]

void QCPAxisRect::setRangeZoomAxes ( QList< QCPAxis * >  axes)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

This method allows to set up multiple axes to react to horizontal and vertical range zooming. The zoom orientation that the respective axis will react to is deduced from its orientation (QCPAxis::orientation).

In the unusual case that you wish to e.g. zoom a vertically oriented axis with a horizontal zoom interaction, use the overload taking two separate lists for horizontal and vertical zooming.

Definition at line 18348 of file qcustomplot.cpp.

◆ setRangeZoomAxes() [3/3]

void QCPAxisRect::setRangeZoomAxes ( QList< QCPAxis * >  horizontal,
QList< QCPAxis * >  vertical 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

This method allows to set multiple axes up to react to horizontal and vertical zooming, and define specifically which axis reacts to which zoom orientation (irrespective of the axis orientation).

Definition at line 18367 of file qcustomplot.cpp.

◆ setRangeZoomFactor() [1/2]

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 18409 of file qcustomplot.cpp.

◆ setRangeZoomFactor() [2/2]

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 18399 of file qcustomplot.cpp.

◆ setupFullAxesBox()

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 label visibility (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 17846 of file qcustomplot.cpp.

◆ size()

QSize QCPAxisRect::size ( ) const
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 4938 of file qcustomplot.h.

◆ top()

int QCPAxisRect::top ( ) const
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 4934 of file qcustomplot.h.

◆ topLeft()

QPoint QCPAxisRect::topLeft ( ) const
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 4939 of file qcustomplot.h.

◆ topRight()

QPoint QCPAxisRect::topRight ( ) const
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 4940 of file qcustomplot.h.

◆ update()

void QCPAxisRect::update ( UpdatePhase  phase)
overridevirtual

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.

\seebaseclassmethod

Reimplemented from QCPLayoutElement.

Definition at line 17987 of file qcustomplot.cpp.

◆ updateAxesOffset()

void QCPAxisRect::updateAxesOffset ( QCPAxis::AxisType  type)
protected

This function makes sure multiple axes on the side specified with type don't collide, but are distributed according to their respective space requirement (QCPAxis::calculateMargin).

It does this by setting an appropriate offset (QCPAxis::setOffset) on all axes except the one with index zero.

This function is called by calculateAutoMargin.

Definition at line 18467 of file qcustomplot.cpp.

◆ wheelEvent()

void QCPAxisRect::wheelEvent ( QWheelEvent event)
overrideprotectedvirtual

Event handler for mouse wheel events. If rangeZoom is Qt::Horizontal, Qt::Vertical or both, the ranges of the axes defined as rangeZoomHorzAxis and rangeZoomVertAxis are scaled. The center of the scaling operation is the current cursor position inside the axis rect. The scaling factor is dependent on the mouse wheel delta (which direction the wheel was rotated) to provide a natural zooming feel. The Strength of the zoom can be controlled via setRangeZoomFactor.

Note, that event->angleDelta() is usually +/-120 for single rotation steps. However, if the mouse wheel is turned rapidly, many steps may bunch up to one event, so the delta may then be multiples of 120. This is taken into account here, by calculating wheelSteps and using it as exponent of the range zoom factor. This takes care of the wheel direction automatically, by inverting the factor, when the wheel step is negative (f^-1 = 1/f).

Reimplemented from QCPLayerable.

Definition at line 18657 of file qcustomplot.cpp.

◆ width()

int QCPAxisRect::width ( ) const
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 4936 of file qcustomplot.h.

◆ zoom() [1/2]

void QCPAxisRect::zoom ( const QRectF pixelRect)

Zooms in (or out) to the passed rectangular region pixelRect, given in pixel coordinates.

All axes of this axis rect will have their range zoomed accordingly. If you only wish to zoom specific axes, use the overloaded version of this method.

See also
QCustomPlot::setSelectionRectMode

Definition at line 17796 of file qcustomplot.cpp.

◆ zoom() [2/2]

void QCPAxisRect::zoom ( const QRectF pixelRect,
const QList< QCPAxis * > &  affectedAxes 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Zooms in (or out) to the passed rectangular region pixelRect, given in pixel coordinates.

Only the axes passed in affectedAxes will have their ranges zoomed accordingly.

See also
QCustomPlot::setSelectionRectMode

Definition at line 17809 of file qcustomplot.cpp.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Fri Aug 12 2022 04:01:01 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.