iCub-main
|
Manages the position of an item. More...
#include <qcustomplot.h>
Public Types | |
enum | PositionType { ptAbsolute , ptViewportRatio , ptAxisRectRatio , ptPlotCoords } |
Defines the ways an item position can be specified. More... | |
Public Member Functions | |
QCPItemPosition (QCustomPlot *parentPlot, QCPAbstractItem *parentItem, const QString name) | |
Creates a new QCPItemPosition. More... | |
virtual | ~QCPItemPosition () |
PositionType | type () const |
QCPItemAnchor * | parentAnchor () const |
double | key () const |
double | value () const |
QPointF | coords () const |
QCPAxis * | keyAxis () const |
QCPAxis * | valueAxis () const |
QCPAxisRect * | axisRect () const |
virtual QPointF | pixelPoint () const |
Returns the final absolute pixel position of the QCPItemPosition on the QCustomPlot surface. More... | |
void | setType (PositionType type) |
Sets the type of the position. More... | |
bool | setParentAnchor (QCPItemAnchor *parentAnchor, bool keepPixelPosition=false) |
Sets the parent of this QCPItemPosition to parentAnchor. More... | |
void | setCoords (double key, double value) |
Sets the coordinates of this QCPItemPosition. More... | |
void | setCoords (const QPointF &coords) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Sets the coordinates as a QPointF pos where pos.x has the meaning of key and pos.y the meaning of value of the setCoords(double key, double value) method. More... | |
void | setAxes (QCPAxis *keyAxis, QCPAxis *valueAxis) |
When setType is ptPlotCoords, this function may be used to specify the axes the coordinates set with setCoords relate to. More... | |
void | setAxisRect (QCPAxisRect *axisRect) |
When setType is ptAxisRectRatio, this function may be used to specify the axis rect the coordinates set with setCoords relate to. More... | |
void | setPixelPoint (const QPointF &pixelPoint) |
Sets the apparent pixel position. More... | |
Public Member Functions inherited from QCPItemAnchor | |
QCPItemAnchor (QCustomPlot *parentPlot, QCPAbstractItem *parentItem, const QString name, int anchorId=-1) | |
Creates a new QCPItemAnchor. More... | |
virtual | ~QCPItemAnchor () |
QString | name () const |
Protected Member Functions | |
virtual QCPItemPosition * | toQCPItemPosition () |
Returns 0 if this instance is merely a QCPItemAnchor, and a valid pointer of type QCPItemPosition* if it actually is a QCPItemPosition (which is a subclass of QCPItemAnchor). More... | |
Protected Member Functions inherited from QCPItemAnchor | |
void | addChild (QCPItemPosition *pos) |
void | removeChild (QCPItemPosition *pos) |
Protected Attributes | |
PositionType | mPositionType |
QPointer< QCPAxis > | mKeyAxis |
QPointer< QCPAxis > | mValueAxis |
QPointer< QCPAxisRect > | mAxisRect |
double | mKey |
double | mValue |
QCPItemAnchor * | mParentAnchor |
Protected Attributes inherited from QCPItemAnchor | |
QString | mName |
QCustomPlot * | mParentPlot |
QCPAbstractItem * | mParentItem |
int | mAnchorId |
QSet< QCPItemPosition * > | mChildren |
Manages the position of an item.
Every item has at least one public QCPItemPosition member pointer which provides ways to position the item on the QCustomPlot surface. Some items have multiple positions, for example QCPItemRect has two: topLeft and bottomRight.
QCPItemPosition has a type (PositionType) that can be set with setType. This type defines how coordinates passed to setCoords are to be interpreted, e.g. as absolute pixel coordinates, as plot coordinates of certain axes, etc.
Further, QCPItemPosition may have a parent QCPItemAnchor, see setParentAnchor. (Note that every QCPItemPosition inherits from QCPItemAnchor and thus can itself be used as parent anchor for other positions.) This way you can tie multiple items together. If the QCPItemPosition has a parent, the coordinates set with setCoords are considered to be absolute values in the reference frame of the parent anchor, where (0, 0) means directly ontop of the parent anchor. For example, You could attach the start position of a QCPItemLine to the bottom anchor of a QCPItemText to make the starting point of the line always be centered under the text label, no matter where the text is moved to, or is itself tied to.
To set the apparent pixel position on the QCustomPlot surface directly, use setPixelPoint. This works no matter what type this QCPItemPosition is or what parent-child situation it is in, as setPixelPoint transforms the coordinates appropriately, to make the position appear at the specified pixel values.
Definition at line 1524 of file qcustomplot.h.
Defines the ways an item position can be specified.
Thus it defines what the numbers passed to setCoords actually mean.
Enumerator | |
---|---|
ptAbsolute | Static positioning in pixels, starting from the top left corner of the viewport/widget. |
ptViewportRatio | Static positioning given by a fraction of the viewport size. For example, if you call setCoords(0, 0), the position will be at the top left corner of the viewport/widget. setCoords(1, 1) will be at the bottom right corner, setCoords(0.5, 0) will be horizontally centered and vertically at the top of the viewport/widget, etc. |
ptAxisRectRatio | Static positioning given by a fraction of the axis rect size (see setAxisRect). For example, if you call setCoords(0, 0), the position will be at the top left corner of the axis rect. setCoords(1, 1) will be at the bottom right corner, setCoords(0.5, 0) will be horizontally centered and vertically at the top of the axis rect, etc. You can also go beyond the axis rect by providing negative coordinates or coordinates larger than 1. |
ptPlotCoords | Dynamic positioning at a plot coordinate defined by two axes (see setAxes). |
Definition at line 1533 of file qcustomplot.h.
QCPItemPosition::QCPItemPosition | ( | QCustomPlot * | parentPlot, |
QCPAbstractItem * | parentItem, | ||
const QString | name | ||
) |
Creates a new QCPItemPosition.
You shouldn't create QCPItemPosition instances directly, even if you want to make a new item subclass. Use QCPAbstractItem::createPosition instead, as explained in the subclassing section of the QCPAbstractItem documentation.
Definition at line 7617 of file qcustomplot.cpp.
|
virtual |
Definition at line 7626 of file qcustomplot.cpp.
QCPAxisRect * QCPItemPosition::axisRect | ( | ) | const |
Definition at line 7640 of file qcustomplot.cpp.
|
inline |
Definition at line 1551 of file qcustomplot.h.
|
inline |
Definition at line 1549 of file qcustomplot.h.
|
inline |
Definition at line 1552 of file qcustomplot.h.
|
inline |
Definition at line 1548 of file qcustomplot.h.
|
virtual |
Returns the final absolute pixel position of the QCPItemPosition on the QCustomPlot surface.
It includes all effects of type (setType) and possible parent anchors (setParentAnchor).
Reimplemented from QCPItemAnchor.
Definition at line 7798 of file qcustomplot.cpp.
When setType is ptPlotCoords, this function may be used to specify the axes the coordinates set with setCoords relate to.
By default they are set to the initial xAxis and yAxis of the QCustomPlot.
Definition at line 7900 of file qcustomplot.cpp.
void QCPItemPosition::setAxisRect | ( | QCPAxisRect * | axisRect | ) |
When setType is ptAxisRectRatio, this function may be used to specify the axis rect the coordinates set with setCoords relate to.
By default this is set to the main axis rect of the QCustomPlot.
Definition at line 7911 of file qcustomplot.cpp.
void QCPItemPosition::setCoords | ( | const QPointF & | coords | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Sets the coordinates as a QPointF pos where pos.x has the meaning of key and pos.y the meaning of value of the setCoords(double key, double value) method.
Definition at line 7787 of file qcustomplot.cpp.
void QCPItemPosition::setCoords | ( | double | key, |
double | value | ||
) |
Sets the coordinates of this QCPItemPosition.
What the coordinates mean, is defined by the type (setType).
For example, if the type is ptAbsolute, key and value mean the x and y pixel position on the QCustomPlot surface. In that case the origin (0, 0) is in the top left corner of the QCustomPlot viewport. If the type is ptPlotCoords, key and value mean a point in the plot coordinate system defined by the axes set by setAxes. By default those are the QCustomPlot's xAxis and yAxis. See the documentation of setType for other available coordinate types and their meaning.
Definition at line 7776 of file qcustomplot.cpp.
bool QCPItemPosition::setParentAnchor | ( | QCPItemAnchor * | parentAnchor, |
bool | keepPixelPosition = false |
||
) |
Sets the parent of this QCPItemPosition to parentAnchor.
This means the position will now follow any position changes of the anchor. The local coordinate system of positions with a parent anchor always is absolute with (0, 0) being exactly on top of the parent anchor. (Hence the type shouldn't be ptPlotCoords for positions with parent anchors.)
if keepPixelPosition is true, the current pixel position of the QCPItemPosition is preserved during reparenting. If it's set to false, the coordinates are set to (0, 0), i.e. the position will be exactly on top of the parent anchor.
To remove this QCPItemPosition from any parent anchor, set parentAnchor to 0.
If the QCPItemPosition previously had no parent and the type is ptPlotCoords, the type is set to ptAbsolute, to keep the position in a valid state.
Definition at line 7705 of file qcustomplot.cpp.
void QCPItemPosition::setPixelPoint | ( | const QPointF & | pixelPoint | ) |
Sets the apparent pixel position.
This works no matter what type (setType) this QCPItemPosition is or what parent-child situation it is in, as coordinates are transformed appropriately, to make the position finally appear at the specified pixel values.
Only if the type is ptAbsolute and no parent anchor is set, this function's effect is identical to that of setCoords.
Definition at line 7926 of file qcustomplot.cpp.
void QCPItemPosition::setType | ( | QCPItemPosition::PositionType | type | ) |
Sets the type of the position.
The type defines how the coordinates passed to setCoords should be handled and how the QCPItemPosition should behave in the plot.
The possible values for type can be separated in two main categories:
Note that the position type ptPlotCoords is only available (and sensible) when the position has no parent anchor (setParentAnchor).
If the type is changed, the apparent pixel position on the plot is preserved. This means the coordinates as retrieved with coords() and set with setCoords may change in the process.
Definition at line 7667 of file qcustomplot.cpp.
|
inlineprotectedvirtual |
Returns 0 if this instance is merely a QCPItemAnchor, and a valid pointer of type QCPItemPosition* if it actually is a QCPItemPosition (which is a subclass of QCPItemAnchor).
This safe downcast functionality could also be achieved with a dynamic_cast. However, QCustomPlot avoids dynamic_cast to work with projects that don't have RTTI support enabled (e.g. -fno-rtti flag with gcc compiler).
Reimplemented from QCPItemAnchor.
Definition at line 1575 of file qcustomplot.h.
|
inline |
Definition at line 1547 of file qcustomplot.h.
|
inline |
Definition at line 1550 of file qcustomplot.h.
|
inline |
Definition at line 1553 of file qcustomplot.h.
|
protected |
Definition at line 1570 of file qcustomplot.h.
|
protected |
Definition at line 1571 of file qcustomplot.h.
|
protected |
Definition at line 1569 of file qcustomplot.h.
|
protected |
Definition at line 1572 of file qcustomplot.h.
|
protected |
Definition at line 1568 of file qcustomplot.h.
|
protected |
Definition at line 1571 of file qcustomplot.h.
|
protected |
Definition at line 1569 of file qcustomplot.h.