68 lines
1.4 KiB
C++
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;
|
|
}
|
|
}
|