Main Page · Class Overview · Hierarchy · All Classes · Special Pages
Public Functions | Signals | Protected Functions
QCPPlotTitle Class Reference

A layout element displaying a plot title text. More...

Inheritance diagram for QCPPlotTitle:
Inheritance graph

Public Functions

 QCPPlotTitle (QCustomPlot *parentPlot)
 
 QCPPlotTitle (QCustomPlot *parentPlot, const QString &text)
 
QString text () const
 
QFont font () const
 
QColor textColor () const
 
QFont selectedFont () const
 
QColor selectedTextColor () const
 
bool selectable () const
 
bool selected () const
 
void setText (const QString &text)
 
void setFont (const QFont &font)
 
void setTextColor (const QColor &color)
 
void setSelectedFont (const QFont &font)
 
void setSelectedTextColor (const QColor &color)
 
Q_SLOT void setSelectable (bool selectable)
 
Q_SLOT void setSelected (bool selected)
 
virtual double selectTest (const QPointF &pos, bool onlySelectable, QVariant *details=0) const
 
- Public Functions inherited from QCPLayoutElement
 QCPLayoutElement (QCustomPlot *parentPlot=0)
 
QCPLayoutlayout () const
 
QRect rect () const
 
QRect outerRect () const
 
QMargins margins () const
 
QMargins minimumMargins () const
 
QCP::MarginSides autoMargins () const
 
QSize minimumSize () const
 
QSize maximumSize () const
 
QCPMarginGroupmarginGroup (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 void update (UpdatePhase phase)
 
virtual QList< QCPLayoutElement * > elements (bool recursive) const
 
- Public Functions inherited from QCPLayerable
 QCPLayerable (QCustomPlot *plot, QString targetLayer=QString(), QCPLayerable *parentLayerable=0)
 
bool visible () const
 
QCustomPlotparentPlot () const
 
QCPLayerableparentLayerable () const
 
QCPLayerlayer () 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
 

Signals

void selectionChanged (bool selected)
 
void selectableChanged (bool selectable)
 
- Signals inherited from QCPLayerable
void layerChanged (QCPLayer *newLayer)
 

Protected Functions

virtual void applyDefaultAntialiasingHint (QCPPainter *painter) const
 
virtual void draw (QCPPainter *painter)
 
virtual QSize minimumSizeHint () const
 
virtual QSize maximumSizeHint () const
 
virtual void selectEvent (QMouseEvent *event, bool additive, const QVariant &details, bool *selectionStateChanged)
 
virtual void deselectEvent (bool *selectionStateChanged)
 
QFont mainFont () const
 
QColor mainTextColor () const
 
- Protected Functions inherited from QCPLayoutElement
virtual int calculateAutoMargin (QCP::MarginSide side)
 
virtual void mousePressEvent (QMouseEvent *event)
 
virtual void mouseMoveEvent (QMouseEvent *event)
 
virtual void mouseReleaseEvent (QMouseEvent *event)
 
virtual void mouseDoubleClickEvent (QMouseEvent *event)
 
virtual void wheelEvent (QWheelEvent *event)
 
virtual void parentPlotInitialized (QCustomPlot *parentPlot)
 
- Protected Functions inherited from QCPLayerable
virtual QCP::Interaction selectionCategory () const
 
virtual QRect clipRect () const
 
void initializeParentPlot (QCustomPlot *parentPlot)
 
void setParentLayerable (QCPLayerable *parentLayerable)
 
bool moveToLayer (QCPLayer *layer, bool prepend)
 
void applyAntialiasingHint (QCPPainter *painter, bool localAntialiased, QCP::AntialiasedElement overrideElement) const
 

Additional Inherited Members

- Public Types inherited from QCPLayoutElement
enum  UpdatePhase
 

Detailed Description

A layout element displaying a plot title text.

The text may be specified with setText, theformatting can be controlled with setFont and setTextColor.

A plot title can be added as follows:

customPlot->plotLayout()->insertRow(0); // inserts an empty row above the default axis rect
customPlot->plotLayout()->addElement(0, 0, new QCPPlotTitle(customPlot, "Your Plot Title"));

Since a plot title is a common requirement, QCustomPlot offers specialized selection signals for easy interaction with QCPPlotTitle. If a layout element of type QCPPlotTitle is clicked, the signal QCustomPlot::titleClick is emitted. A double click emits the QCustomPlot::titleDoubleClick signal.

Constructor & Destructor Documentation

QCPPlotTitle::QCPPlotTitle ( QCustomPlot parentPlot)
explicit

Creates a new QCPPlotTitle instance and sets default values. The initial text is empty (setText).

To set the title text in the constructor, rather use QCPPlotTitle(QCustomPlot *parentPlot, const QString &text).

QCPPlotTitle::QCPPlotTitle ( QCustomPlot parentPlot,
const QString &  text 
)
explicit

This is an overloaded function.

Creates a new QCPPlotTitle instance and sets default values. The initial text is set to text.

Member Function Documentation

void QCPPlotTitle::setText ( const QString &  text)

Sets the text that will be displayed to text. Multiple lines can be created by insertion of "\n".

See Also
setFont, setTextColor
void QCPPlotTitle::setFont ( const QFont &  font)

Sets the font of the title text.

See Also
setTextColor, setSelectedFont
void QCPPlotTitle::setTextColor ( const QColor &  color)

Sets the color of the title text.

See Also
setFont, setSelectedTextColor
void QCPPlotTitle::setSelectedFont ( const QFont &  font)

Sets the font of the title text that will be used if the plot title is selected (setSelected).

See Also
setFont
void QCPPlotTitle::setSelectedTextColor ( const QColor &  color)

Sets the color of the title text that will be used if the plot title is selected (setSelected).

See Also
setTextColor
void QCPPlotTitle::setSelectable ( bool  selectable)

Sets whether the user may select this plot title to selectable.

Note that even when selectable is set to false, the selection state may be changed programmatically via setSelected.

void QCPPlotTitle::setSelected ( bool  selected)

Sets the selection state of this plot title to selected. If the selection has changed, selectionChanged is emitted.

Note that this function can change the selection state independently of the current setSelectable state.

double QCPPlotTitle::selectTest ( const QPointF &  pos,
bool  onlySelectable,
QVariant *  details = 0 
) const
virtual

Layout elements are sensitive to events inside their outer rect. If pos is within the outer rect, this method returns a value corresponding to 0.99 times the parent plot's selection tolerance. However, layout elements are not selectable by default. So if onlySelectable is true, -1.0 is returned.

See QCPLayerable::selectTest for a general explanation of this virtual method.

QCPLayoutElement subclasses may reimplement this method to provide more specific selection test behaviour.

Reimplemented from QCPLayoutElement.

void QCPPlotTitle::selectionChanged ( bool  selected)
signal

This signal is emitted when the selection state has changed to selected, either by user interaction or by a direct call to setSelected.

See Also
setSelected, setSelectable
void QCPPlotTitle::applyDefaultAntialiasingHint ( QCPPainter painter) const
protectedvirtual

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, scatters and error bars. Those can be configured via QCPGraph::setAntialiased, QCPGraph::setAntialiasedFill, QCPGraph::setAntialiasedScatters etc. 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.

void QCPPlotTitle::draw ( QCPPainter painter)
protectedvirtual

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.

QSize QCPPlotTitle::minimumSizeHint ( ) const
protectedvirtual

Returns the minimum size this layout element (the inner rect) may be compressed to.

if a minimum size (setMinimumSize) was not set manually, parent layouts consult this function to determine the minimum allowed size of this layout element. (A manual minimum size is considered set if it is non-zero.)

Reimplemented from QCPLayoutElement.

QSize QCPPlotTitle::maximumSizeHint ( ) const
protectedvirtual

Returns the maximum size this layout element (the inner rect) may be expanded to.

if a maximum size (setMaximumSize) was not set manually, parent layouts consult this function to determine the maximum allowed size of this layout element. (A manual maximum size is considered set if it is smaller than Qt's QWIDGETSIZE_MAX.)

Reimplemented from QCPLayoutElement.

void QCPPlotTitle::selectEvent ( QMouseEvent *  event,
bool  additive,
const QVariant &  details,
bool *  selectionStateChanged 
)
protectedvirtual

This event is called when the layerable shall be selected, as a consequence of a click by the user. Subclasses should react to it by setting their selection state appropriately. The default implementation does nothing.

event is the mouse event that caused the selection. additive indicates, whether the user was holding the multi-select-modifier while performing the selection (see QCustomPlot::setMultiSelectModifier). if additive is true, the selection state must be toggled (i.e. become selected when unselected and unselected when selected).

Every selectEvent is preceded by a call to selectTest, which has returned positively (i.e. returned a value greater than 0 and less than the selection tolerance of the parent QCustomPlot). The details data you output from selectTest is fed back via details here. You may use it to transport any kind of information from the selectTest to the possibly subsequent selectEvent. Usually details is used to transfer which part was clicked, if it is a layerable that has multiple individually selectable parts (like QCPAxis). This way selectEvent doesn't need to do the calculation again to find out which part was actually clicked.

selectionStateChanged is an output parameter. If the pointer is non-null, this function must set the value either to true or false, depending on whether the selection state of this layerable was actually changed. For layerables that only are selectable as a whole and not in parts, this is simple: if additive is true, selectionStateChanged must also be set to true, because the selection toggles. If additive is false, selectionStateChanged is only set to true, if the layerable was previously unselected and now is switched to the selected state.

See Also
selectTest, deselectEvent

Reimplemented from QCPLayerable.

void QCPPlotTitle::deselectEvent ( bool *  selectionStateChanged)
protectedvirtual

This event is called when the layerable shall be deselected, either as consequence of a user interaction or a call to QCustomPlot::deselectAll. Subclasses should react to it by unsetting their selection appropriately.

just as in selectEvent, the output parameter selectionStateChanged (if non-null), must return true or false when the selection state of this layerable has changed or not changed, respectively.

See Also
selectTest, selectEvent

Reimplemented from QCPLayerable.

QFont QCPPlotTitle::mainFont ( ) const
protected

Returns the main font to be used. This is mSelectedFont if setSelected is set to true, else mFont is returned.

QColor QCPPlotTitle::mainTextColor ( ) const
protected

Returns the main color to be used. This is mSelectedTextColor if setSelected is set to true, else mTextColor is returned.


The documentation for this class was generated from the following files: