QML中ScrollView的自动滚动

        在用到QML中的ScrollView时,我们常常会需要让滚动条自动滚动到某个位置,使得某些信息滚动到可视化区域,就可以用下面的方法让其滚动:

import Material 0.1
import QtQuick 2.4
import QtQuick.Layouts 1.2
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4

Window {
    width: 530
    height: 300

    ScrollView {
        id:scroll
        width: 530
        height: 300

        Rectangle {
            id:rect
            width: 500
            height: 900
            Rectangle {
                id: rect1
                anchors.top: rect.top
                width: 500
                height: 300
                color: "red"
                border.color: "blue"
            }

            Rectangle {
                id: rect2
                anchors.top: rect1.bottom
                width: 500
                height: 300
                color: "green"
                border.color: "blue"
            }

            Rectangle {
                id: rect3
                anchors.top: rect2.bottom
                width: 500
                height: 900
                color: "orange"
                border.color: "blue"

                MouseArea {
                    anchors.fill: parent
                    onClicked: {
                        scroll.flickableItem.contentY = rect2.y
                    }
                }
            }
        }
    }
}

如上代码中,语句 scroll.flickableItem.contentY = rect2.y 表示当点击第三个矩形框时,自动将滚动条滚动到第二个矩形框进行显示。

你可能感兴趣的:(Qt/QML的实践积累)