##// END OF EJS Templates
combined clicked and rightclicked events of legend to one event with parameter
combined clicked and rightclicked events of legend to one event with parameter

File last commit:

r531:64f37cf5241e
r567:17f0257049a1
Show More
chartwidget.cpp
75 lines | 1.5 KiB | text/x-c | CppLexer
#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;
int margin = this->margin();
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();
zoomIn(rect);
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;
case Qt::Key_Left:
scroll(-10,0);
break;
case Qt::Key_Right:
scroll(10,0);
break;
case Qt::Key_Up:
scroll(0,10);
break;
case Qt::Key_Down:
scroll(0,-10);
break;
default:
QGraphicsView::keyPressEvent(event);
break;
}
}