我正在使用 QT QML 和 QTCharts 开发数据演示应用程序。我正在使用 ChartView 和线系列来显示 XY 数据。除了捏合和缩放图表之外,一切都有效。该应用程序针对移动触摸设备。
我希望能够捏合和缩放图表并将缩放原点设置为捏合的中心。目前,我可以正常工作,但图表始终仅从图表中心缩放。
这在 QML 中可能吗?
谢谢你的帮助。
解决方案是使用zoomIn(rect rectangle) https://doc.qt.io/qt-5.10/qml-qtcharts-chartview.html#zoomIn-method-1方法,可以接收可见矩形作为参数,在您的情况下,矩形必须以您单击的点为中心。
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();
}
PinchArea{
id: pa
anchors.fill: parent
onPinchUpdated: {
chartView.zoomReset();
var center_x = pinch.center.x
var center_y = pinch.center.y
var width_zoom = height/pinch.scale;
var height_zoom = width/pinch.scale;
var r = Qt.rect(center_x-width_zoom/2, center_y - height_zoom/2, width_zoom, height_zoom)
chartView.zoomIn(r)
}
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)