私のアプリケーションでは、QChart
折れ線グラフを表示するために使用します。残念ながら、Qt Charts は、マウス ホイールを使用したズームやマウスによるスクロールなどの基本的な機能をサポートしていません。はい、RubberBand 機能はありますが、スクロールなどはまだサポートされておらず、ユーザーにとってそれほど直感的ではありません。また、ある種のsetRubberBand(QChartView::HorizontalRubberBand)
マウスホイールを使用して、x軸のみをスケーリングする必要があります。これまでのところ、飛び込んQChartView
だ後、次の回避策を使用しました。
class ChartView : public QChartView {
protected:
void wheelEvent(QWheelEvent *event) Q_DECL_OVERRIDE
{
QRectF rect = chart()->plotArea();
if(event->angleDelta().y() > 0)
{
rect.setX(rect.x() + rect.width() / 4);
rect.setWidth(rect.width() / 2);
}
else
{
qreal adjustment = rect.width() / 2;
rect.adjust(-adjustment, 0, adjustment, 0);
}
chart()->zoomIn(rect);
event->accept();
QChartView::wheelEvent(event);
}
}
それは機能しますが、ズームインしてからズームアウトしても同じ結果にはなりません。小さな偏差があります。chart()->plotArea()
デバッグ後、 が常に同じ rect を返すことがわかったので、この回避策は役に立ちませんでした。
可視領域のみの矩形を取得する方法はありますか? または、QChartViewのマウスによるズーム/スクロールを行う方法を誰かが私に正しい解決策を教えてくれるかもしれませんか?