0

我编写了这段代码,我希望 ChartView 在鼠标滚轮以一种或另一种方式转动时向右或向左滚动。

ChartView {
    id: chartView
    animationOptions: ChartView.NoAnimation
    theme: ChartView.ChartThemeDark 
    ValueAxis {
        ...
    }
    ValueAxis {
        ...
    }
    LineSeries {
        ...
    }
    MouseArea {
        anchors.fill: parent

        onWheel: {
            if (wheel.modifiers & Qt.ControlModifier){
                if (wheel.angleDelta.y > 0)
                {
                    chartView.scrollRight(5)
                }
                else
                {
                    chartView.scrollLeft(5)
                }
                wheel.accepted=true
            }
            else{
                wheel.accepted=false
            }
        }
    }
}

虽然不工作。我错过了什么?

4

1 回答 1

0

我会使用 ScrollView:

Rectangle {
    width: 200 //size of the viewed part
    height: 200 //size of the viewed part
    color: "transparent"
    clip: true
    ScrollView {
        anchors.fill: parent
        contentWidth: chartRec.width
        contentHeight: chartRec.height
        Rectangle {
            id: chartRec
            height: 400 //size of the chart
            width: 400 //size of the chart 
            color: "transparent"
            ChartView {
                id: chartView
                anchors.fill: parent
                animationOptions: ChartView.NoAnimation
                theme: ChartView.ChartThemeDark 
                ValueAxis {
                    ...
                }
                ValueAxis {
                    ...
                }
                LineSeries {
                    ...
                }
            }
        }
    }
}

第二个 Rectangle 的大小应该大于第一个 Rectangle 的大小。如果没有,则不会显示 ScrollView。

于 2018-08-15T05:37:09.480 回答