#include "chartview.h" #include #include #include 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; } }