C++ 如何限制图表的放大?
我已经从中实现了缩放示例 现在我需要限制缩放。我有两个Y轴,值为-100到+100(甚至更大),另一个y2轴固定在-pi..pi(没有超出该范围的值) 变焦不应大于数据范围的边界,或至少可设置限制 那么我如何实现这一点呢?到目前为止,我没有找到更多的QT图表示例C++ 如何限制图表的放大?,c++,qt,plot,C++,Qt,Plot,我已经从中实现了缩放示例 现在我需要限制缩放。我有两个Y轴,值为-100到+100(甚至更大),另一个y2轴固定在-pi..pi(没有超出该范围的值) 变焦不应大于数据范围的边界,或至少可设置限制 那么我如何实现这一点呢?到目前为止,我没有找到更多的QT图表示例 此外,我想重置缩放到原来的,让退格说。如何重置缩放?回答晚,但因为没有其他 在MyChartView:public QtCharts::QChartViewclass I中,使用此方法重写mouseReleaseEvent。当右键单击时
此外,我想重置缩放到原来的,让退格说。如何重置缩放?回答晚,但因为没有其他 在
MyChartView:public QtCharts::QChartView
class I中,使用此方法重写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);
}
}
总的猜测,但可能:好的,但我如何检查范围?如果仅将图表作为对象,如何访问轴?我如何捕捉缩放发生的情况?有一个
rangeChanged(qreal min,qreal max)
信号我可以捕捉到,但我可以在哪里连接它?不幸的是,我对QT知之甚少。这些链接是我30年代在谷歌上发现的。在你调用void QChart::zoomIn之后,你能不能检查轴并根据需要调整它们?或者甚至不用缩放,只需手动调整范围即可。