LINUX.ORG.RU

История изменений

Исправление Pavval, (текущая версия) :

Если тебе нужно чтобы скролл вел себя так, как тебе надо, то не аттачь его к Flickable, а подключай руками. Например:

import QtQuick
import QtQuick.Controls
import QtQuick.Window

Window {
    width: 300
    height: 300
    visible: true
    title: qsTr("Hello World")


    Flickable
    {
        id: view
        anchors.fill: parent
        contentWidth: contentRect.width
        contentHeight: contentRect.height
        Rectangle
        {
            id: contentRect
            color: "red"
            width: 400
            height: 400
            radius: width / 2
        }
    }

    ScrollBar
    {
        id: hbar
        anchors
        {
            left: view.left
            right: view.right
            rightMargin: vbar.width
            bottom: view.bottom
        }

        policy: ScrollBar.AlwaysOn
        orientation: Qt.Horizontal
        size: view.visibleArea.widthRatio
        position: view.visibleArea.xPosition
        onPositionChanged: if (size !== 1 && !view.flicking) view.contentX = position * view.contentWidth - view.originX
        visible: size !== 1
    }

    ScrollBar
    {
        id: vbar
        anchors
        {
            right: view.right
            top: view.top
            bottom: view.bottom
            bottomMargin: hbar.height
        }

        policy: ScrollBar.AlwaysOn
        orientation: Qt.Vertical
        size: view.visibleArea.heightRatio
        position: view.visibleArea.yPosition
        onPositionChanged: if (size !== 1 && !view.flicking) view.contentY = position * view.contentHeight - view.originY
        visible: size !== 1
    }
}

А пытаться в приаттаченом скроллбаре зафорсить свойство - это костыли.

Исходная версия Pavval, :

Если тебе нужно чтобы скролл вел себя так, как тебе надо, то не аттач его к Flickable, а подключай руками. Например:

import QtQuick
import QtQuick.Controls
import QtQuick.Window

Window {
    width: 300
    height: 300
    visible: true
    title: qsTr("Hello World")


    Flickable
    {
        id: view
        anchors.fill: parent
        contentWidth: contentRect.width
        contentHeight: contentRect.height
        Rectangle
        {
            id: contentRect
            color: "red"
            width: 400
            height: 400
            radius: width / 2
        }
    }

    ScrollBar
    {
        id: hbar
        anchors
        {
            left: view.left
            right: view.right
            rightMargin: vbar.width
            bottom: view.bottom
        }

        policy: ScrollBar.AlwaysOn
        orientation: Qt.Horizontal
        size: view.visibleArea.widthRatio
        position: view.visibleArea.xPosition
        onPositionChanged: if (size !== 1 && !view.flicking) view.contentX = position * view.contentWidth - view.originX
        visible: size !== 1
    }

    ScrollBar
    {
        id: vbar
        anchors
        {
            right: view.right
            top: view.top
            bottom: view.bottom
            bottomMargin: hbar.height
        }

        policy: ScrollBar.AlwaysOn
        orientation: Qt.Vertical
        size: view.visibleArea.heightRatio
        position: view.visibleArea.yPosition
        onPositionChanged: if (size !== 1 && !view.flicking) view.contentY = position * view.contentHeight - view.originY
        visible: size !== 1
    }
}

А пытаться в приаттаченом скроллбаре зафорсить свойство - это костыли.