История изменений
Исправление 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
}
}
А пытаться в приаттаченом скроллбаре зафорсить свойство - это костыли.