dataservice/chartview.cpp

68 lines
1.4 KiB
C++

#include "chartview.h"
#include <QtGui/QMouseEvent>
#include <QScrollBar>
#include <iostream>
ChartView::ChartView(QChart *chart, QWidget *parent) :
QChartView(chart, parent)
{
setContentsMargins(0,0,0,0);
}
void ChartView::mousePressEvent(QMouseEvent *event)
{
if (event->buttons() & Qt::LeftButton) {
mouseDownPos = event->localPos();
return;
}
QChartView::mousePressEvent(event);
}
void ChartView::mouseMoveEvent(QMouseEvent *event)
{
if (event->buttons() & Qt::LeftButton) {
qreal dx = event->localPos().x() - mouseDownPos.x();
qreal dy = event->localPos().y() - mouseDownPos.y();
mouseDownPos = event->localPos();
chart()->scroll(-1.0*dx,dy);
return;
}
QChartView::mouseMoveEvent(event);
}
void ChartView::mouseReleaseEvent(QMouseEvent *event)
{
QChartView::mouseReleaseEvent(event);
}
void ChartView::keyPressEvent(QKeyEvent *event)
{
switch (event->key()) {
case Qt::Key_Plus:
chart()->zoomIn();
break;
case Qt::Key_Minus:
chart()->zoomOut();
break;
case Qt::Key_Left:
chart()->scroll(-10, 0);
break;
case Qt::Key_Right:
chart()->scroll(10, 0);
break;
case Qt::Key_Up:
chart()->scroll(0, 10);
break;
case Qt::Key_Down:
chart()->scroll(0, -10);
break;
default:
QGraphicsView::keyPressEvent(event);
break;
}
}