QChartView, RubberBand и поведение правой кнопки мыши

У меня есть класс, полученный из QChartView, и я включил выбор резинки в нем

MyChartView::MyChartView(QChart* chart)
:QChartView(chart)
{
setMouseTracking(true);
setInteractive(true);
setRubberBand(RectangleRubberBand);
}

В документации Qt сказано, что

Если отпустить левую кнопку мыши и включить резинку, событие будет принято, и изображение будет увеличено в прямоугольнике, указанном резинкой. Если это событие правой кнопки мыши, то представление уменьшается.

Я не хочу уменьшать масштаб правой кнопки. Я пытался переопределить mouseReleaseEvent

void MyChartView::mouseReleaseEvent(QMouseEvent *e)
{
if(e->buttons() == Qt::RightButton)
{
std::cout << "my overriden event" << std::endl;
return; //event doesn't go further
}
QChartView::mouseReleaseEvent(e);//any other event
}

но это ничего не печатает.

Как я могу изменить это поведение?

2

Решение

Решение проблемы очень просто. Я только что перепутал button() а также buttons() функции. Следующий код работает правильно:

void MyChartView::mouseReleaseEvent(QMouseEvent *e)
{
if(e->button() == Qt::RightButton)
{
std::cout << "my overriden event" << std::endl;
return; //event doesn't go further
}
QChartView::mouseReleaseEvent(e);//any other event
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]