summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@digia.com>2012-07-04 16:00:09 +0300
committerMichal Klocek <michal.klocek@digia.com>2012-07-04 16:00:42 +0300
commit8b084e770b030f2570db75bd4bc0597f4d9abc04 (patch)
treecfd76a1f9bc28ddd774fd1a9216f7dab195cf8a2
parent35c35dbacb1e89643ad686291181f8833510d336 (diff)
Adds plotArea()
* fixes dynamic spline example
-rw-r--r--demos/dynamicspline/chart.cpp21
-rw-r--r--demos/dynamicspline/chart.h2
-rw-r--r--src/chartpresenter.cpp2
-rw-r--r--src/qchart.cpp5
-rw-r--r--src/qchart.h1
5 files changed, 22 insertions, 9 deletions
diff --git a/demos/dynamicspline/chart.cpp b/demos/dynamicspline/chart.cpp
index a12ce1f4..d3e52f4e 100644
--- a/demos/dynamicspline/chart.cpp
+++ b/demos/dynamicspline/chart.cpp
@@ -21,12 +21,15 @@
#include "chart.h"
#include <QAbstractAxis>
#include <QSplineSeries>
+#include <QValuesAxis>
#include <QTime>
+#include <QDebug>
Chart::Chart(QGraphicsItem *parent, Qt::WindowFlags wFlags)
:QChart(parent, wFlags),
- m_step(1),
- m_x(0),
+ m_step(0),
+ m_axis(new QValuesAxis),
+ m_x(5),
m_y(1)
{
qsrand((uint) QTime::currentTime().msec());
@@ -42,10 +45,10 @@ Chart::Chart(QGraphicsItem *parent, Qt::WindowFlags wFlags)
addSeries(m_series);
createDefaultAxes();
-
- axisY()->setRange(-5, 5);
- axisX()->setRange(-9, 1);
- //TODO:axisX()->setTicksCount(11);
+ setAxisX(m_axis,m_series);
+ m_axis->setTicksCount(5);
+ axisX()->setRange(0, 10);
+ axisY()->setRange(-5, 10);
m_timer.start();
}
@@ -57,9 +60,11 @@ Chart::~Chart()
void Chart::handleTimeout()
{
- m_x += m_step;
+ qreal x = plotArea().width()/m_axis->ticksCount();
+ qreal y =(m_axis->max() - m_axis->min())/m_axis->ticksCount();
+ m_x += y;
m_y = qrand() % 5 - 2.5;
m_series->append(m_x, m_y);
- scroll(10,0);
+ scroll(x,0);
if(m_x==100) m_timer.stop();
}
diff --git a/demos/dynamicspline/chart.h b/demos/dynamicspline/chart.h
index 7611dfab..965c261f 100644
--- a/demos/dynamicspline/chart.h
+++ b/demos/dynamicspline/chart.h
@@ -26,6 +26,7 @@
QTCOMMERCIALCHART_BEGIN_NAMESPACE
class QSplineSeries;
+class QValuesAxis;
QTCOMMERCIALCHART_END_NAMESPACE
QTCOMMERCIALCHART_USE_NAMESPACE
@@ -45,6 +46,7 @@ private:
QTimer m_timer;
QSplineSeries* m_series;
QStringList m_titles;
+ QValuesAxis* m_axis;
qreal m_step;
qreal m_x;
qreal m_y;
diff --git a/src/chartpresenter.cpp b/src/chartpresenter.cpp
index 7546087d..97b76f86 100644
--- a/src/chartpresenter.cpp
+++ b/src/chartpresenter.cpp
@@ -451,7 +451,7 @@ void ChartPresenter::setMarginsMinimum(const QRectF& margins)
QRectF ChartPresenter::margins() const
{
- return QRectF();//m_layout->margins();
+ return m_layout->margins();
}
QLegend* ChartPresenter::legend()
diff --git a/src/qchart.cpp b/src/qchart.cpp
index af9b1769..563db002 100644
--- a/src/qchart.cpp
+++ b/src/qchart.cpp
@@ -379,6 +379,11 @@ QRectF QChart::margins() const
return d_ptr->m_presenter->margins();
}
+QRectF QChart::plotArea() const
+{
+ return d_ptr->m_presenter->geometry();
+}
+
/*!
Sets animation \a options for the chart
*/
diff --git a/src/qchart.h b/src/qchart.h
index 0b89a235..62e936df 100644
--- a/src/qchart.h
+++ b/src/qchart.h
@@ -117,6 +117,7 @@ public:
void setMarginsMinimum(const QRectF& margins);
QRectF margins() const;
+ QRectF plotArea() const;
Q_SIGNALS:
void marginsChanged(QRectF newMargins);