如何限制QtCharts的缩放?

时间:2016-10-20 06:24:46

标签: c++ qt plot

我已经实现了http://doc.qt.io/qt-5/qtcharts-zoomlinechart-example.html

的缩放示例

现在我需要限制缩放。我有两个Y轴,其值为-100到+100(甚至更大),另一个y2轴固定为-pi..pi(没有超出该范围的值)

缩放不得大于数据范围的边界,或至少限制应可以选择。

那么我该如何实现呢?到目前为止,我没有找到QtCharts的其他例子。

此外,我想将缩放重置为原始,让我们说使用Backspace。我该如何重置缩放?

1 个答案:

答案 0 :(得分:0)

最新答案,但没有其他答案。

MyChartView : public QtCharts::QChartView类中,我使用此方法覆盖mouseReleaseEvent。右键单击时,轴将立即“缩小”为默认值(这是我想要的)。

如果应该逐步支持缩小,我想连接到QValueAxis :: maxChanged / QValueAxis :: minChanged并检查范围是否可以完成。

void MyChartView::mouseReleaseEvent(QMouseEvent *event) {
   if (event->button() == Qt::MouseButton::LeftButton) {
       // continue with zoom in
        QtCharts::QChartView::mouseReleaseEvent(event);
   }
   else if (event->button() == Qt::MouseButton::RightButton) {
      // reset axis to default
      axisY_->setMin(0);
      axisY_->setMax(10);
      axisX_->setMin(0);
      axisX_->setMax(10);
   }
}