【发布时间】:2021-05-04 23:55:55
【问题描述】:
我的 Qml 中有一个简单的图表视图:
import QtQuick 2.9
import QtQuick.Window 2.2
import QtCharts 2.0
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
ChartView {
id: chartView
anchors.fill: parent
theme: ChartView.ChartThemeBrownSand
antialiasing: true
LineSeries {
name: "LineSeries"
XYPoint { x: 0; y: 0 }
XYPoint { x: 1.1; y: 2.1 }
XYPoint { x: 1.9; y: 3.3 }
XYPoint { x: 2.1; y: 2.1 }
XYPoint { x: 2.9; y: 4.9 }
XYPoint { x: 3.4; y: 3.0 }
XYPoint { x: 4.1; y: 3.3 }
}
MouseArea{
anchors.fill: parent
onDoubleClicked: chartView.zoomReset();
}
}
}
我用一个矩形来放大它。:
var r = Qt.rect(x, y, w, h)
chartView.zoomIn(r)
还有它的工作格栅!但问题是当用户在图表内部放大时,轴中的值会发生变化。新的价值观会发生一些变化。 所以当用户想要放大一个值并且值的范围很大时,用户会丢失他想要放大的特定值。
主要问题是因为刻度不是基于值...它们基于范围的最大值和最小值
(max - min)/ticks = new ticks on the axis
我需要将它们固定在数字上,以便即使在绘图中缩放 10 次或更多的刻度线仍然保持在值上。
【问题讨论】:
-
你试过了吗:
animationOptions:ChartView.GridAxisAnimations -
是的。但它只是在网格变化上设置了一些动画。没有帮助