Biomedical Image Analysis Library
The Biomedical Image Analysis Library is a poweful tool for developers, physicians, researchers, engineers, and so on.
|
Manages a legend inside a QCustomPlot. More...
#include <qcustomplot.h>
Public Types | |
enum | SelectablePart { spNone = 0x000, spLegendBox = 0x001, spItems = 0x002 } |
Public Types inherited from QCPLayoutElement | |
enum | UpdatePhase { upPreparation, upMargins, upLayout } |
Signals | |
void | selectionChanged (QCPLegend::SelectableParts parts) |
void | selectableChanged (QCPLegend::SelectableParts parts) |
Signals inherited from QCPLayerable | |
void | layerChanged (QCPLayer *newLayer) |
Protected Member Functions | |
virtual void | parentPlotInitialized (QCustomPlot *parentPlot) |
virtual QCP::Interaction | selectionCategory () const |
virtual void | applyDefaultAntialiasingHint (QCPPainter *painter) const |
virtual void | draw (QCPPainter *painter) |
virtual void | selectEvent (QMouseEvent *event, bool additive, const QVariant &details, bool *selectionStateChanged) |
virtual void | deselectEvent (bool *selectionStateChanged) |
QPen | getBorderPen () const |
QBrush | getBrush () const |
Protected Member Functions inherited from QCPLayoutGrid | |
void | getMinimumRowColSizes (QVector< int > *minColWidths, QVector< int > *minRowHeights) const |
void | getMaximumRowColSizes (QVector< int > *maxColWidths, QVector< int > *maxRowHeights) const |
Protected Member Functions inherited from QCPLayout | |
void | sizeConstraintsChanged () const |
void | adoptElement (QCPLayoutElement *el) |
void | releaseElement (QCPLayoutElement *el) |
QVector< int > | getSectionSizes (QVector< int > maxSizes, QVector< int > minSizes, QVector< double > stretchFactors, int totalSize) const |
Protected Member 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) |
Protected Member Functions inherited from QCPLayerable | |
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 |
Protected Attributes | |
QPen | mBorderPen |
QPen | mIconBorderPen |
QBrush | mBrush |
QFont | mFont |
QColor | mTextColor |
QSize | mIconSize |
int | mIconTextPadding |
SelectableParts | mSelectedParts |
SelectableParts | mSelectableParts |
QPen | mSelectedBorderPen |
QPen | mSelectedIconBorderPen |
QBrush | mSelectedBrush |
QFont | mSelectedFont |
QColor | mSelectedTextColor |
Protected Attributes inherited from QCPLayoutGrid | |
QList< QList< QCPLayoutElement * > > | mElements |
QList< double > | mColumnStretchFactors |
QList< double > | mRowStretchFactors |
int | mColumnSpacing |
int | mRowSpacing |
Protected Attributes inherited from QCPLayoutElement | |
QCPLayout * | mParentLayout |
QSize | mMinimumSize |
QSize | mMaximumSize |
QRect | mRect |
QRect | mOuterRect |
QMargins | mMargins |
QMargins | mMinimumMargins |
QCP::MarginSides | mAutoMargins |
QHash< QCP::MarginSide, QCPMarginGroup * > | mMarginGroups |
Protected Attributes inherited from QCPLayerable | |
bool | mVisible |
QCustomPlot * | mParentPlot |
QPointer< QCPLayerable > | mParentLayerable |
QCPLayer * | mLayer |
bool | mAntialiased |
Friends | |
class | QCustomPlot |
class | QCPAbstractLegendItem |
Manages a legend inside a QCustomPlot.
A legend is a small box somewhere in the plot which lists plottables with their name and icon.
Normally, the legend is populated by calling QCPAbstractPlottable::addToLegend. The respective legend item can be removed with QCPAbstractPlottable::removeFromLegend. However, QCPLegend also offers an interface to add and manipulate legend items directly: item, itemWithPlottable, itemCount, addItem, removeItem, etc.
The QCPLegend derives from QCPLayoutGrid and as such can be placed in any position a QCPLayoutElement may be positioned. The legend items are themselves QCPLayoutElements which are placed in the grid layout of the legend. QCPLegend only adds an interface specialized for handling child elements of type QCPAbstractLegendItem, as mentioned above. In principle, any other layout elements may also be added to a legend via the normal QCPLayoutGrid interface. However, the QCPAbstractLegendItem-Interface will ignore those elements (e.g. itemCount will only return the number of items with QCPAbstractLegendItems type).
By default, every QCustomPlot has one legend (QCustomPlot::legend) which is placed in the inset layout of the main axis rect (QCPAxisRect::insetLayout). To move the legend to another position inside the axis rect, use the methods of the QCPLayoutInset. To move the legend outside of the axis rect, place it anywhere else with the QCPLayout/QCPLayoutElement interface.
Definition at line 2169 of file qcustomplot.h.
Defines the selectable parts of a legend
Enumerator | |
---|---|
spNone |
|
spLegendBox |
|
spItems |
|
Definition at line 2194 of file qcustomplot.h.
|
explicit |
Constructs a new QCPLegend instance with parentPlot as the containing plot and default values.
Note that by default, QCustomPlot already contains a legend ready to be used as QCustomPlot::legend
Definition at line 12947 of file qcustomplot.cpp.
|
virtual |
Definition at line 12970 of file qcustomplot.cpp.
bool QCPLegend::addItem | ( | QCPAbstractLegendItem * | item | ) |
Adds item to the legend, if it's not present already.
Returns true on sucess, i.e. if the item wasn't in the list already and has been successfuly added.
The legend takes ownership of the item.
Definition at line 13288 of file qcustomplot.cpp.
|
protectedvirtual |
Reimplemented from QCPLayoutElement.
Definition at line 13372 of file qcustomplot.cpp.
|
inline |
Definition at line 2205 of file qcustomplot.h.
|
inline |
Definition at line 2206 of file qcustomplot.h.
void QCPLegend::clearItems | ( | ) |
Removes all items from the legend.
Definition at line 13333 of file qcustomplot.cpp.
|
protectedvirtual |
Reimplemented from QCPLayerable.
Definition at line 13440 of file qcustomplot.cpp.
|
protectedvirtual |
Reimplemented from QCPLayoutElement.
Definition at line 13402 of file qcustomplot.cpp.
|
inline |
Definition at line 2207 of file qcustomplot.h.
|
protected |
Definition at line 13382 of file qcustomplot.cpp.
|
protected |
Definition at line 13392 of file qcustomplot.cpp.
bool QCPLegend::hasItem | ( | QCPAbstractLegendItem * | item | ) | const |
Returns whether the legend contains itm.
Definition at line 13260 of file qcustomplot.cpp.
bool QCPLegend::hasItemWithPlottable | ( | const QCPAbstractPlottable * | plottable | ) | const |
Returns whether the legend contains a QCPPlottableLegendItem which is associated with plottable (e.g. a QCPGraph*). If such an item isn't in the legend, returns false.
Definition at line 13276 of file qcustomplot.cpp.
|
inline |
Definition at line 2211 of file qcustomplot.h.
|
inline |
Definition at line 2209 of file qcustomplot.h.
|
inline |
Definition at line 2210 of file qcustomplot.h.
QCPAbstractLegendItem * QCPLegend::item | ( | int | index | ) | const |
int QCPLegend::itemCount | ( | ) | const |
Returns the number of items currently in the legend.
Definition at line 13252 of file qcustomplot.cpp.
QCPPlottableLegendItem * QCPLegend::itemWithPlottable | ( | const QCPAbstractPlottable * | plottable | ) | const |
Returns the QCPPlottableLegendItem which is associated with plottable (e.g. a QCPGraph*). If such an item isn't in the legend, returns 0.
Definition at line 13235 of file qcustomplot.cpp.
|
protectedvirtual |
Reimplemented from QCPLayoutElement.
Definition at line 13465 of file qcustomplot.cpp.
bool QCPLegend::removeItem | ( | int | index | ) |
Removes the item with index index from the legend.
Returns true, if successful.
Definition at line 13304 of file qcustomplot.cpp.
bool QCPLegend::removeItem | ( | QCPAbstractLegendItem * | item | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Removes item from the legend.
Returns true, if successful.
Definition at line 13323 of file qcustomplot.cpp.
|
signal |
|
inline |
Definition at line 2212 of file qcustomplot.h.
|
inline |
Definition at line 2214 of file qcustomplot.h.
|
inline |
Definition at line 2216 of file qcustomplot.h.
|
inline |
Definition at line 2217 of file qcustomplot.h.
|
inline |
Definition at line 2215 of file qcustomplot.h.
QList< QCPAbstractLegendItem * > QCPLegend::selectedItems | ( | ) | const |
Returns the legend items that are currently selected. If no items are selected, the list is empty.
Definition at line 13345 of file qcustomplot.cpp.
QCPLegend::SelectableParts QCPLegend::selectedParts | ( | ) | const |
Definition at line 12978 of file qcustomplot.cpp.
|
inline |
Definition at line 2218 of file qcustomplot.h.
|
protectedvirtual |
Reimplemented from QCPLayerable.
Definition at line 13426 of file qcustomplot.cpp.
|
protectedvirtual |
Reimplemented from QCPLayerable.
Definition at line 13453 of file qcustomplot.cpp.
|
signal |
This signal is emitted when the selection state of this legend has changed.
|
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.
Definition at line 13411 of file qcustomplot.cpp.
void QCPLegend::setBorderPen | ( | const QPen & | pen | ) |
Sets the pen, the border of the entire legend is drawn with.
Definition at line 12999 of file qcustomplot.cpp.
void QCPLegend::setBrush | ( | const QBrush & | brush | ) |
Sets the brush of the legend background.
Definition at line 13007 of file qcustomplot.cpp.
void QCPLegend::setFont | ( | const QFont & | font | ) |
Sets the default font of legend text. Legend items that draw text (e.g. the name of a graph) will use this font by default. However, a different font can be specified on a per-item-basis by accessing the specific legend item.
This function will also set font on all already existing legend items.
Definition at line 13021 of file qcustomplot.cpp.
void QCPLegend::setIconBorderPen | ( | const QPen & | pen | ) |
Sets the pen used to draw a border around each legend icon. Legend items that draw an icon (e.g. a visual representation of the graph) will use this pen by default.
If no border is wanted, set this to Qt::NoPen.
Definition at line 13083 of file qcustomplot.cpp.
void QCPLegend::setIconSize | ( | const QSize & | size | ) |
Sets the size of legend icons. Legend items that draw an icon (e.g. a visual representation of the graph) will use this size by default.
Definition at line 13054 of file qcustomplot.cpp.
void QCPLegend::setIconSize | ( | int | width, |
int | height | ||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 13061 of file qcustomplot.cpp.
void QCPLegend::setIconTextPadding | ( | int | padding | ) |
Sets the horizontal space in pixels between the legend icon and the text next to it. Legend items that draw an icon (e.g. a visual representation of the graph) and text (e.g. the name of the graph) will use this space by default.
Definition at line 13072 of file qcustomplot.cpp.
void QCPLegend::setSelectableParts | ( | const SelectableParts & | selectable | ) |
Sets whether the user can (de-)select the parts in selectable by clicking on the QCustomPlot surface. (When QCustomPlot::setInteractions contains QCP::iSelectLegend.)
However, even when selectable is set to a value not allowing the selection of a specific part, it is still possible to set the selection of this part manually, by calling setSelectedParts directly.
Definition at line 13098 of file qcustomplot.cpp.
void QCPLegend::setSelectedBorderPen | ( | const QPen & | pen | ) |
When the legend box is selected, this pen is used to draw the border instead of the normal pen set via setBorderPen.
Definition at line 13159 of file qcustomplot.cpp.
void QCPLegend::setSelectedBrush | ( | const QBrush & | brush | ) |
When the legend box is selected, this brush is used to draw the legend background instead of the normal brush set via setBrush.
Definition at line 13180 of file qcustomplot.cpp.
void QCPLegend::setSelectedFont | ( | const QFont & | font | ) |
Sets the default font that is used by legend items when they are selected.
This function will also set font on all already existing legend items.
Definition at line 13192 of file qcustomplot.cpp.
void QCPLegend::setSelectedIconBorderPen | ( | const QPen & | pen | ) |
Sets the pen legend items will use to draw their icon borders, when they are selected.
Definition at line 13169 of file qcustomplot.cpp.
void QCPLegend::setSelectedParts | ( | const SelectableParts & | selected | ) |
Sets the selected state of the respective legend parts described by SelectablePart. When a part is selected, it uses a different pen/font and brush. If some legend items are selected and selected doesn't contain spItems, those items become deselected.
The entire selection mechanism is handled automatically when QCustomPlot::setInteractions contains iSelectLegend. You only need to call this function when you wish to change the selection state manually.
This function can change the selection state of a part even when setSelectableParts was set to a value that actually excludes the part.
emits the selectionChanged signal when selected is different from the previous selection state.
Note that it doesn't make sense to set the selected state spItems here when it wasn't set before, because there's no way to specify which exact items to newly select. Do this by calling QCPAbstractLegendItem::setSelected directly on the legend item you wish to select.
Definition at line 13128 of file qcustomplot.cpp.
void QCPLegend::setSelectedTextColor | ( | const QColor & | color | ) |
Sets the default text color that is used by legend items when they are selected.
This function will also set color on all already existing legend items.
Definition at line 13209 of file qcustomplot.cpp.
void QCPLegend::setTextColor | ( | const QColor & | color | ) |
Sets the default color of legend text. Legend items that draw text (e.g. the name of a graph) will use this color by default. However, a different colors can be specified on a per-item-basis by accessing the specific legend item.
This function will also set color on all already existing legend items.
Definition at line 13040 of file qcustomplot.cpp.
|
inline |
Definition at line 2208 of file qcustomplot.h.
|
friend |
Definition at line 2287 of file qcustomplot.h.
|
friend |
Definition at line 2286 of file qcustomplot.h.
|
protected |
Definition at line 2258 of file qcustomplot.h.
|
protected |
Definition at line 2259 of file qcustomplot.h.
|
protected |
Definition at line 2260 of file qcustomplot.h.
|
protected |
Definition at line 2258 of file qcustomplot.h.
|
protected |
Definition at line 2262 of file qcustomplot.h.
|
protected |
Definition at line 2263 of file qcustomplot.h.
|
protected |
Definition at line 2264 of file qcustomplot.h.
|
protected |
Definition at line 2265 of file qcustomplot.h.
|
protected |
Definition at line 2266 of file qcustomplot.h.
|
protected |
Definition at line 2267 of file qcustomplot.h.
|
protected |
Definition at line 2265 of file qcustomplot.h.
|
protected |
Definition at line 2264 of file qcustomplot.h.
|
protected |
Definition at line 2268 of file qcustomplot.h.
|
protected |
Definition at line 2261 of file qcustomplot.h.