Public Slots | Public Member Functions | Protected Member Functions | Private Slots | Private Member Functions | Private Attributes | Friends | List of all members
UPlot Class Reference

#include <UPlot.h>

Inheritance diagram for UPlot:
Inheritance graph
[legend]

Public Slots

void clearData ()
 
void removeCurve (const UPlotCurve *curve)
 
void showCurve (const UPlotCurve *curve, bool shown)
 
void updateAxis ()
 

Public Member Functions

UPlotCurveaddCurve (const QString &curveName, const QColor &color=QColor())
 
bool addCurve (UPlotCurve *curve, bool ownershipTransferred=true)
 
UPlotCurveThresholdaddThreshold (const QString &name, float value, Qt::Orientation orientation=Qt::Horizontal)
 
bool contains (const QString &curveName)
 
QStringList curveNames ()
 
QPen getRandomPenColored ()
 
void keepAllData (bool kept)
 
void removeCurves ()
 
QRectF sceneRect () const
 
void setBackgroundColor (const QColor &color)
 
void setFixedXAxis (float x1, float x2)
 
void setFixedYAxis (float y1, float y2)
 
void setGraphicsView (bool on)
 
void setMaxVisibleItems (int maxVisibleItems)
 
void setTitle (const QString &text)
 
void setVariableXAxis ()
 
void setVariableYAxis ()
 
void setWorkingDirectory (const QString &workingDirectory)
 
void setXLabel (const QString &text)
 
void setYLabel (const QString &text, Qt::Orientation orientation=Qt::Vertical)
 
void showGrid (bool shown)
 
void showLegend (bool shown)
 
void showRefreshRate (bool shown)
 
void showXAxis (bool shown)
 
void showYAxis (bool shown)
 
QString title () const
 
void trackMouse (bool tracking)
 
 UPlot (QWidget *parent=0)
 
virtual ~UPlot ()
 

Protected Member Functions

virtual void contextMenuEvent (QContextMenuEvent *event)
 
virtual void mouseDoubleClickEvent (QMouseEvent *event)
 
virtual void mouseMoveEvent (QMouseEvent *event)
 
virtual void mousePressEvent (QMouseEvent *event)
 
virtual void mouseReleaseEvent (QMouseEvent *event)
 
virtual void paintEvent (QPaintEvent *event)
 
virtual void resizeEvent (QResizeEvent *event)
 

Private Slots

void captureScreen ()
 
void moveCurve (const UPlotCurve *, int index)
 
void updateAxis (const UPlotCurve *curve)
 

Private Member Functions

void addItem (QGraphicsItem *item)
 
void createActions ()
 
void createMenus ()
 
bool mousePosToValue (const QPoint &pos, float &x, float &y)
 
void replot (QPainter *painter)
 
void selectScreenCaptureFormat ()
 
void setupUi ()
 
bool updateAxis (float x, float y)
 
bool updateAxis (float x1, float x2, float y1, float y2)
 

Private Attributes

QAction * _aAddHorizontalLine
 
QAction * _aAddVerticalLine
 
QAction * _aAutoScreenCapture
 
QAction * _aChangeBackgroundColor
 
QAction * _aChangeTitle
 
QAction * _aChangeXLabel
 
QAction * _aChangeYLabel
 
QAction * _aClearData
 
QAction * _aGraphicsView
 
QAction * _aKeepAllData
 
QAction * _aLimit0
 
QAction * _aLimit10
 
QAction * _aLimit100
 
QAction * _aLimit1000
 
QAction * _aLimit50
 
QAction * _aLimit500
 
QAction * _aLimitCustom
 
QAction * _aMouseTracking
 
QAction * _aSaveFigure
 
QAction * _aShowGrid
 
QAction * _aShowLegend
 
QAction * _aShowRefreshRate
 
QString _autoScreenCaptureFormat
 
float _axisMaximums [4]
 
bool _axisMaximumsSet [4]
 
QAction * _aYLabelVertical
 
QColor _bgColor
 
QList< UPlotCurve * > _curves
 
bool _fixedAxis [2]
 
QWidget * _graphicsViewHolder
 
UPlotAxis_horizontalAxis
 
UPlotLegend_legend
 
int _lowestRefreshRate
 
int _maxVisibleItems
 
QMenu * _menu
 
QPoint _mouseCurrentPos
 
QPoint _mousePressedPos
 
int _penStyleCount
 
QTime _refreshIntervalTime
 
QLabel * _refreshRate
 
QTime _refreshStartTime
 
QGraphicsItem * _sceneRoot
 
QLabel * _title
 
UPlotAxis_verticalAxis
 
QGraphicsView * _view
 
QString _workingDirectory
 
QLabel * _xLabel
 
UOrientableLabel_yLabel
 
QList< QGraphicsLineItem * > hGridLines
 
QList< QGraphicsLineItem * > vGridLines
 

Friends

class UPlotCurve
 

Detailed Description

UPlot is a QWidget to create a plot like MATLAB, and incrementally add new values like a scope using Qt signals/slots. Many customizations can be done at runtime with the right-click menu.

UPlot.gif
UPlotMenu.png

Example:

#include "utilite/UPlot.h"
#include <QApplication>
int main(int argc, char * argv[])
{
QApplication app(argc, argv);
UPlot plot;
UPlotCurve * curve = plot.addCurve("My curve");
float y[10] = {0, 1, 2, 3, -3, -2, -1, 0, 1, 2};
curve->addValues(std::vector<float>(y, y+10));
plot.showGrid(true);
plot.setGraphicsView(true);
plot.show();
app.exec();
return 0;
}
SimplePlot.tiff

Definition at line 483 of file UPlot.h.

Constructor & Destructor Documentation

UPlot::UPlot ( QWidget *  parent = 0)

Constructor.

Definition at line 1802 of file UPlot.cpp.

UPlot::~UPlot ( )
virtual

Definition at line 1840 of file UPlot.cpp.

Member Function Documentation

UPlotCurve * UPlot::addCurve ( const QString &  curveName,
const QColor &  color = QColor() 
)

Add a curve. The returned curve doesn't need to be deallocated (UPlot keeps the ownership).

Definition at line 1993 of file UPlot.cpp.

bool UPlot::addCurve ( UPlotCurve curve,
bool  ownershipTransferred = true 
)

Add a curve. Ownership is transferred to UPlot if ownershipTransferred=true.

Definition at line 2009 of file UPlot.cpp.

void UPlot::addItem ( QGraphicsItem *  item)
private

Definition at line 2916 of file UPlot.cpp.

UPlotCurveThreshold * UPlot::addThreshold ( const QString &  name,
float  value,
Qt::Orientation  orientation = Qt::Horizontal 
)

Add a threshold to the plot.

Definition at line 2848 of file UPlot.cpp.

void UPlot::captureScreen ( )
privateslot

Definition at line 2797 of file UPlot.cpp.

void UPlot::clearData ( )
slot

Clear all curves' data.

Definition at line 2834 of file UPlot.cpp.

bool UPlot::contains ( const QString &  curveName)

Definition at line 2070 of file UPlot.cpp.

void UPlot::contextMenuEvent ( QContextMenuEvent *  event)
protectedvirtual

Definition at line 2578 of file UPlot.cpp.

void UPlot::createActions ( )
private

Definition at line 1904 of file UPlot.cpp.

void UPlot::createMenus ( )
private

Definition at line 1958 of file UPlot.cpp.

QStringList UPlot::curveNames ( )

Get all curve names.

Definition at line 2057 of file UPlot.cpp.

QPen UPlot::getRandomPenColored ( )

Definition at line 2082 of file UPlot.cpp.

void UPlot::keepAllData ( bool  kept)

Definition at line 2964 of file UPlot.cpp.

void UPlot::mouseDoubleClickEvent ( QMouseEvent *  event)
protectedvirtual

Definition at line 2529 of file UPlot.cpp.

void UPlot::mouseMoveEvent ( QMouseEvent *  event)
protectedvirtual

Definition at line 2456 of file UPlot.cpp.

bool UPlot::mousePosToValue ( const QPoint &  pos,
float &  x,
float &  y 
)
private

Definition at line 2535 of file UPlot.cpp.

void UPlot::mousePressEvent ( QMouseEvent *  event)
protectedvirtual

Definition at line 2449 of file UPlot.cpp.

void UPlot::mouseReleaseEvent ( QMouseEvent *  event)
protectedvirtual

Definition at line 2494 of file UPlot.cpp.

void UPlot::moveCurve ( const UPlotCurve curve,
int  index 
)
privateslot

Definition at line 3068 of file UPlot.cpp.

void UPlot::paintEvent ( QPaintEvent *  event)
protectedvirtual

Definition at line 2384 of file UPlot.cpp.

void UPlot::removeCurve ( const UPlotCurve curve)
slot

Remove a curve. If UPlot is the parent of the curve, the curve is deleted.

Definition at line 3020 of file UPlot.cpp.

void UPlot::removeCurves ( )

Definition at line 3010 of file UPlot.cpp.

void UPlot::replot ( QPainter *  painter)
private

Definition at line 2109 of file UPlot.cpp.

void UPlot::resizeEvent ( QResizeEvent *  event)
protectedvirtual

Definition at line 2440 of file UPlot.cpp.

QRectF UPlot::sceneRect ( ) const

Definition at line 3005 of file UPlot.cpp.

void UPlot::selectScreenCaptureFormat ( )
private

Definition at line 2821 of file UPlot.cpp.

void UPlot::setBackgroundColor ( const QColor &  color)

Definition at line 2903 of file UPlot.cpp.

void UPlot::setFixedXAxis ( float  x1,
float  x2 
)

Definition at line 2278 of file UPlot.cpp.

void UPlot::setFixedYAxis ( float  y1,
float  y2 
)

Definition at line 2285 of file UPlot.cpp.

void UPlot::setGraphicsView ( bool  on)

Definition at line 2956 of file UPlot.cpp.

void UPlot::setMaxVisibleItems ( int  maxVisibleItems)

Definition at line 2969 of file UPlot.cpp.

void UPlot::setTitle ( const QString &  text)

Definition at line 2868 of file UPlot.cpp.

void UPlot::setupUi ( )
private

Definition at line 1849 of file UPlot.cpp.

void UPlot::setVariableXAxis ( )
inline

Definition at line 521 of file UPlot.h.

void UPlot::setVariableYAxis ( )
inline

Definition at line 522 of file UPlot.h.

void UPlot::setWorkingDirectory ( const QString &  workingDirectory)

Definition at line 2785 of file UPlot.cpp.

void UPlot::setXLabel ( const QString &  text)

Definition at line 2879 of file UPlot.cpp.

void UPlot::setYLabel ( const QString &  text,
Qt::Orientation  orientation = Qt::Vertical 
)

Definition at line 2890 of file UPlot.cpp.

void UPlot::showCurve ( const UPlotCurve curve,
bool  shown 
)
slot

Definition at line 3054 of file UPlot.cpp.

void UPlot::showGrid ( bool  shown)

Definition at line 2933 of file UPlot.cpp.

void UPlot::showLegend ( bool  shown)

Definition at line 2922 of file UPlot.cpp.

void UPlot::showRefreshRate ( bool  shown)

Definition at line 2939 of file UPlot.cpp.

void UPlot::showXAxis ( bool  shown)
inline

Definition at line 519 of file UPlot.h.

void UPlot::showYAxis ( bool  shown)
inline

Definition at line 520 of file UPlot.h.

QString UPlot::title ( ) const
inline

Definition at line 512 of file UPlot.h.

void UPlot::trackMouse ( bool  tracking)

Definition at line 2950 of file UPlot.cpp.

void UPlot::updateAxis ( )
slot

Definition at line 2358 of file UPlot.cpp.

void UPlot::updateAxis ( const UPlotCurve curve)
privateslot

Definition at line 2292 of file UPlot.cpp.

bool UPlot::updateAxis ( float  x,
float  y 
)
private

Definition at line 2323 of file UPlot.cpp.

bool UPlot::updateAxis ( float  x1,
float  x2,
float  y1,
float  y2 
)
private

Definition at line 2308 of file UPlot.cpp.

Friends And Related Function Documentation

friend class UPlotCurve
friend

Definition at line 563 of file UPlot.h.

Member Data Documentation

QAction* UPlot::_aAddHorizontalLine
private

Definition at line 616 of file UPlot.h.

QAction* UPlot::_aAddVerticalLine
private

Definition at line 615 of file UPlot.h.

QAction* UPlot::_aAutoScreenCapture
private

Definition at line 625 of file UPlot.h.

QAction* UPlot::_aChangeBackgroundColor
private

Definition at line 620 of file UPlot.h.

QAction* UPlot::_aChangeTitle
private

Definition at line 617 of file UPlot.h.

QAction* UPlot::_aChangeXLabel
private

Definition at line 618 of file UPlot.h.

QAction* UPlot::_aChangeYLabel
private

Definition at line 619 of file UPlot.h.

QAction* UPlot::_aClearData
private

Definition at line 626 of file UPlot.h.

QAction* UPlot::_aGraphicsView
private

Definition at line 627 of file UPlot.h.

QAction* UPlot::_aKeepAllData
private

Definition at line 607 of file UPlot.h.

QAction* UPlot::_aLimit0
private

Definition at line 608 of file UPlot.h.

QAction* UPlot::_aLimit10
private

Definition at line 609 of file UPlot.h.

QAction* UPlot::_aLimit100
private

Definition at line 611 of file UPlot.h.

QAction* UPlot::_aLimit1000
private

Definition at line 613 of file UPlot.h.

QAction* UPlot::_aLimit50
private

Definition at line 610 of file UPlot.h.

QAction* UPlot::_aLimit500
private

Definition at line 612 of file UPlot.h.

QAction* UPlot::_aLimitCustom
private

Definition at line 614 of file UPlot.h.

QAction* UPlot::_aMouseTracking
private

Definition at line 623 of file UPlot.h.

QAction* UPlot::_aSaveFigure
private

Definition at line 624 of file UPlot.h.

QAction* UPlot::_aShowGrid
private

Definition at line 606 of file UPlot.h.

QAction* UPlot::_aShowLegend
private

Definition at line 605 of file UPlot.h.

QAction* UPlot::_aShowRefreshRate
private

Definition at line 622 of file UPlot.h.

QString UPlot::_autoScreenCaptureFormat
private

Definition at line 599 of file UPlot.h.

float UPlot::_axisMaximums[4]
private

Definition at line 581 of file UPlot.h.

bool UPlot::_axisMaximumsSet[4]
private

Definition at line 582 of file UPlot.h.

QAction* UPlot::_aYLabelVertical
private

Definition at line 621 of file UPlot.h.

QColor UPlot::_bgColor
private

Definition at line 602 of file UPlot.h.

QList<UPlotCurve*> UPlot::_curves
private

Definition at line 590 of file UPlot.h.

bool UPlot::_fixedAxis[2]
private

Definition at line 583 of file UPlot.h.

QWidget* UPlot::_graphicsViewHolder
private

Definition at line 580 of file UPlot.h.

UPlotAxis* UPlot::_horizontalAxis
private

Definition at line 585 of file UPlot.h.

UPlotLegend* UPlot::_legend
private

Definition at line 577 of file UPlot.h.

int UPlot::_lowestRefreshRate
private

Definition at line 597 of file UPlot.h.

int UPlot::_maxVisibleItems
private

Definition at line 587 of file UPlot.h.

QMenu* UPlot::_menu
private

Definition at line 604 of file UPlot.h.

QPoint UPlot::_mouseCurrentPos
private

Definition at line 601 of file UPlot.h.

QPoint UPlot::_mousePressedPos
private

Definition at line 600 of file UPlot.h.

int UPlot::_penStyleCount
private

Definition at line 586 of file UPlot.h.

QTime UPlot::_refreshIntervalTime
private

Definition at line 596 of file UPlot.h.

QLabel* UPlot::_refreshRate
private

Definition at line 594 of file UPlot.h.

QTime UPlot::_refreshStartTime
private

Definition at line 598 of file UPlot.h.

QGraphicsItem* UPlot::_sceneRoot
private

Definition at line 579 of file UPlot.h.

QLabel* UPlot::_title
private

Definition at line 591 of file UPlot.h.

UPlotAxis* UPlot::_verticalAxis
private

Definition at line 584 of file UPlot.h.

QGraphicsView* UPlot::_view
private

Definition at line 578 of file UPlot.h.

QString UPlot::_workingDirectory
private

Definition at line 595 of file UPlot.h.

QLabel* UPlot::_xLabel
private

Definition at line 592 of file UPlot.h.

UOrientableLabel* UPlot::_yLabel
private

Definition at line 593 of file UPlot.h.

QList<QGraphicsLineItem *> UPlot::hGridLines
private

Definition at line 588 of file UPlot.h.

QList<QGraphicsLineItem *> UPlot::vGridLines
private

Definition at line 589 of file UPlot.h.


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


rtabmap
Author(s): Mathieu Labbe
autogenerated on Wed Jun 5 2019 22:43:42