LibEngsas
Public Member Functions | Protected Member Functions | Properties | Private Member Functions | Private Attributes | List of all members
EChartLine Class Reference

A EWidget to display line chartsThe title of the whole chart can be set by setTitle(). Afterwards set the title of the x- (setXTitle()) and y-axis (setYTitle()). Now configure the x- and y-axis with setXTicks() and setYTicks(). The chart is configured now and you can add lines with addDataSet(). Make sure, that the values are added in the order of x- and y-ticks. If x-ticks and y-ticks are not numeric, x- and y-values can only contain exactly the values from x-ticks and y-ticks. More...

#include <echartline.h>

+ Inheritance diagram for EChartLine:
+ Collaboration diagram for EChartLine:

Public Member Functions

 EChartLine (QWidget *parent=NULL)
 
void setYTitle (QString yTitle)
 
QString yTitle () const
 
void setXTitle (QString xTitle)
 
QString xTitle () const
 
void setXTicksAngle (int angle)
 
int xTicksAngle () const
 Returns the angle of the x-ticks labels. More...
 
void setXTicks (const QList< QVariant > xTicks)
 
void setYTicks (const QList< QVariant > yTicks)
 
- Public Member Functions inherited from EChartBase
 EChartBase (QWidget *parent=NULL)
 
void setChartTitle (QString chartTitle)
 
QString chartTitle () const
 
void setNumberPrecision (int precision)
 
int numberPrecision () const
 
void setNumberFormat (char format)
 
char numberFormat () const
 
void addDataSet (EChartValues dataSet, const QString label, QColor color=QColor())
 Adds a new line to the graph. More...
 
bool removeDataSet (const QString label)
 
void setTitleFont (QFont font)
 
QFont titleFont () const
 
void setLabelFont (QFont font)
 
QFont labelFont () const
 
EActionexportAction () const
 
- Public Member Functions inherited from EWidget
 EWidget (QWidget *parent=0, Qt::WindowFlags flags=0)
 
virtual ~EWidget ()
 
void setWindowTitle (const QString &title)
 
void connectByPass (QObject *object)
 Connects all standard signals. More...
 

Protected Member Functions

void drawChart (QPainter *painter, QRect viewPort)
 Function to draw the chart. More...
 
void mouseMoveEvent (QMouseEvent *event)
 Used to display the measurements. More...
 
- Protected Member Functions inherited from EChartBase
void paintEvent (QPaintEvent *event)
 
- Protected Member Functions inherited from EWidget
void addManagedDockWidget (QDockWidget *widget, const Qt::DockWidgetArea &area, QString actionLabel=QString(), QString actionParent=QString())
 Adds an dock widget via addNewDockWidget() and adds widget to the list of managed dock widgets. More...
 

Properties

QString xTitle
 
QString yTitle
 
int xTicksAngle
 
- Properties inherited from EChartBase
QString chartTitle
 
int numberPrecision
 
char numberFormat
 
QFont titleFont
 
QFont labelFont
 

Private Member Functions

float linearInterpolation (const float dy, const float x1, const float x0, const float y0, const float x) const
 

Private Attributes

QString myXTitle
 
QString myYTitle
 
QList< QVariant > xTicks
 
QList< QVariant > yTicks
 
bool xNumeric
 
bool yNumeric
 
QMap< QString, QList< QPointF > > linesDrawn
 
QPoint origin
 
QPoint currentPosition
 
qreal currentXValue
 
qreal currentYValue
 
int myXTicksAngle
 

Additional Inherited Members

- Public Slots inherited from EChartBase
void exportChart ()
 
void exportChart (QPainter *painter, QRect boundingRect)
 
void clear ()
 
- Public Slots inherited from EWidget
virtual EngSaS::AvailableActions enableActions ()
 Will be called by EMainWindow::setCentralWidget() to enable and disable standard actions. More...
 
virtual QString fileFilters (EngSaS::FileFilter reason)
 
virtual bool load (QFile *file, QString &error)
 
virtual bool save (QFile *file, QString &error)
 
virtual bool fileNew (QString &error)
 
virtual bool print (QString &error)
 
virtual bool undo (QString &error)
 
virtual bool redo (QString &error)
 
virtual bool cut (QString &error)
 
virtual bool copy (QString &error)
 
virtual bool paste (QString &error)
 
virtual bool reload (QString &error)
 
virtual void reloadSettings ()
 Used to reload settings the settings. More...
 
- Signals inherited from EWidget
void error (const QString &message)
 
void warning (const QString &message)
 
void information (const QString &message)
 
void reloadEnableActions ()
 Request reloading of enabled actions in EMainWindow. More...
 
void addMenu (QMenu *newMenu, const QString &parent, QString before=QString())
 
void addAction (QAction *newAction, const QString &parent, QString before=QString())
 
void addToolBar (QToolBar *newToolBar, Qt::ToolBarArea area=Qt::TopToolBarArea)
 
void addNewDockWidget (QDockWidget *widget, const Qt::DockWidgetArea &area)
 To add managed dock widgets, use addManagedDockWidget() instead. More...
 
void setCentralWidget (QWidget *centralWidget)
 
void showSettings ()
 
void showHelp (const QString &page)
 
void showStatusWidget (QWidget *widget)
 
void reloadSettingsRequest ()
 Indicates, that a reload of the settings is needed. More...
 
void doReloadSettings ()
 Emitted to bring the reload request back to the farest child. More...
 
- Protected Slots inherited from EChartBase
virtual void contextMenu (QPoint pos) const
 This slot is called, if the context menu of this chart should be shown. More...
 
- Protected Slots inherited from EWidget
virtual void errorByPass (const QString &message)
 
virtual void warningByPass (const QString &message)
 
virtual void informationByPass (const QString &message)
 
virtual void reloadEnableActionsByPass ()
 
virtual void addMenuByPass (QMenu *newMenu, const QString &parent, QString before=QString())
 
virtual void addActionByPass (QAction *newAction, const QString &parent, QString before=QString())
 
virtual void addToolBarByPass (QToolBar *newToolBar, Qt::ToolBarArea area=Qt::TopToolBarArea)
 
virtual void addNewDockWidgetByPass (QDockWidget *widget, const Qt::DockWidgetArea &area)
 
virtual void setCentralWidgetByPass (QWidget *centralWidget)
 
virtual void showSettingsByPass ()
 
virtual void showHelpByPass (const QString &page)
 
virtual void showStatusWidgetByPass (QWidget *widget)
 
virtual void reloadSettingsRequestByPass ()
 
- Protected Attributes inherited from EChartBase
int marginHorizontal
 
int marginVertical
 
QRect viewPort
 
QStringList colorNames
 
QList< void(*)(QPainter *, QPoint)> markers
 
QMap< QString, EChartValuesdataSets
 
QMap< QString, QColor > dataSetsColors
 
QMap< QString, void(*)(QPainter
*, QPoint)> 
dataSetsMarkers
 

Detailed Description

A EWidget to display line charts

The title of the whole chart can be set by setTitle(). Afterwards set the title of the x- (setXTitle()) and y-axis (setYTitle()). Now configure the x- and y-axis with setXTicks() and setYTicks(). The chart is configured now and you can add lines with addDataSet(). Make sure, that the values are added in the order of x- and y-ticks. If x-ticks and y-ticks are not numeric, x- and y-values can only contain exactly the values from x-ticks and y-ticks.

If chart is numeric (x-ticks and y-ticks contains only numeric values) the precision and the format of the displayed numbers can be configured with setNumberPrecision() and setNumberFormat(). Per default the format is 'f' and the precision 2 (e. g. 123.45).

Todo:

calculate the linesDrawn only if line is added, the x- or y-ticks are changed or the widget size is changed.

Provide context menu to export chart values and chart as image

Constructor & Destructor Documentation

EChartLine::EChartLine ( QWidget *  parent = NULL)

+ Here is the call graph for this function:

Member Function Documentation

void EChartLine::drawChart ( QPainter *  painter,
QRect  viewPort 
)
protectedvirtual

Function to draw the chart.

It is called by the overladed paintEvent() function and also used to export the chart into an image.

Note
Make sure to restore the painter afterwards!

Implements EChartBase.

+ Here is the call graph for this function:

float EChartLine::linearInterpolation ( const float  dy,
const float  x1,
const float  x0,
const float  y0,
const float  x 
) const
private

+ Here is the caller graph for this function:

void EChartLine::mouseMoveEvent ( QMouseEvent *  event)
protected

Used to display the measurements.

+ Here is the call graph for this function:

void EChartLine::setXTicks ( const QList< QVariant >  xTicks)
void EChartLine::setXTicksAngle ( int  angle)

+ Here is the caller graph for this function:

void EChartLine::setXTitle ( QString  xTitle)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void EChartLine::setYTicks ( const QList< QVariant >  yTicks)
void EChartLine::setYTitle ( QString  yTitle)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int EChartLine::xTicksAngle ( ) const

Returns the angle of the x-ticks labels.

0degree is horizontal and than it turns clockwise (e. g. vertical from top to bottom is equal to 90degree). Default is 0 and maximum is 360degree.

See also
setXTicksAngle()

+ Here is the caller graph for this function:

QString EChartLine::xTitle ( ) const
inline

+ Here is the caller graph for this function:

QString EChartLine::yTitle ( ) const
inline

+ Here is the caller graph for this function:

Member Data Documentation

QPoint EChartLine::currentPosition
private
qreal EChartLine::currentXValue
private
qreal EChartLine::currentYValue
private
QMap<QString, QList<QPointF> > EChartLine::linesDrawn
private

The points currently used to draw the lines

int EChartLine::myXTicksAngle
private
QString EChartLine::myXTitle
private
QString EChartLine::myYTitle
private
QPoint EChartLine::origin
private
bool EChartLine::xNumeric
private
QList<QVariant> EChartLine::xTicks
private
bool EChartLine::yNumeric
private
QList<QVariant> EChartLine::yTicks
private

Property Documentation

int EChartLine::xTicksAngle
readwriteprivate
QString EChartLine::xTitle
readwriteprivate
QString EChartLine::yTitle
readwriteprivate

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