chartwidget.cpp
74 lines
| 1.5 KiB
| text/x-c
|
CppLexer
Michal Klocek
|
r67 | #include "chartwidget.h" | ||
#include <QMouseEvent> | ||||
ChartWidget::ChartWidget(QWidget *parent) | ||||
: QChartView(parent), | ||||
m_rubberBand(QRubberBand::Rectangle,this) | ||||
{ | ||||
} | ||||
void ChartWidget::mousePressEvent(QMouseEvent *event) | ||||
{ | ||||
if(event->button()!=Qt::LeftButton) return; | ||||
Tero Ahola
|
r642 | int margin = 25; | ||
Michal Klocek
|
r67 | QRect rect(margin,margin,width()-2*margin,height()-2*margin); | ||
m_origin = event->pos(); | ||||
if (!rect.contains(m_origin)) return; | ||||
m_rubberBand.setGeometry(QRect(m_origin, QSize())); | ||||
m_rubberBand.show(); | ||||
event->accept(); | ||||
} | ||||
void ChartWidget::mouseMoveEvent(QMouseEvent *event) | ||||
{ | ||||
if(m_rubberBand.isVisible()) | ||||
m_rubberBand.setGeometry(QRect(m_origin, event->pos()).normalized()); | ||||
} | ||||
void ChartWidget::mouseReleaseEvent(QMouseEvent *event) | ||||
{ | ||||
if( event->button()==Qt::LeftButton && m_rubberBand.isVisible()) { | ||||
m_rubberBand.hide(); | ||||
QRect rect = m_rubberBand.geometry(); | ||||
Michal Klocek
|
r226 | zoomIn(rect); | ||
Michal Klocek
|
r67 | event->accept(); | ||
} | ||||
if(event->button()==Qt::RightButton) { | ||||
zoomOut(); | ||||
} | ||||
} | ||||
void ChartWidget::keyPressEvent(QKeyEvent *event) | ||||
{ | ||||
switch (event->key()) { | ||||
case Qt::Key_Plus: | ||||
zoomIn(); | ||||
break; | ||||
case Qt::Key_Minus: | ||||
zoomOut(); | ||||
break; | ||||
Michal Klocek
|
r531 | case Qt::Key_Left: | ||
Michal Klocek
|
r601 | scrollLeft(); | ||
Michal Klocek
|
r531 | break; | ||
case Qt::Key_Right: | ||||
Michal Klocek
|
r601 | scrollRight(); | ||
Michal Klocek
|
r531 | break; | ||
case Qt::Key_Up: | ||||
Michal Klocek
|
r601 | scrollUp(); | ||
Michal Klocek
|
r531 | break; | ||
case Qt::Key_Down: | ||||
Michal Klocek
|
r601 | scrollDown(); | ||
Michal Klocek
|
r531 | break; | ||
Michal Klocek
|
r67 | default: | ||
QGraphicsView::keyPressEvent(event); | ||||
break; | ||||
} | ||||
} | ||||