Qt Quick QML Flickable 禁用轻弹并仅启用滚动
Posted
技术标签:
【中文标题】Qt Quick QML Flickable 禁用轻弹并仅启用滚动【英文标题】:Qt Quick QML Flickable disable flicking and enable only scrolling 【发布时间】:2020-06-02 09:05:52 【问题描述】:我在一列中有两个Flickable
,当用户滚动第二个 Flickable 时,我想垂直滚动第一个 Flickable。
Rectangle
id: root
anchors.fill: parent
Flickable
id: first
anchors.left: parent.left
width: parent.width/2
height: parent.height
// Rest of the Contents
// I have also some TextFields and ComboBoxs here
Flickable
id: second
anchors.left: first.right
width: parent.width/2
height: parent.height
onFlickEnded:
first.contentY = second.contentY;
// Rest of the Contents
// I have also some TextFields and ComboBoxs here
我可以通过使用onFlickEnded
事件来做到这一点,这是正确的方法吗?
当用户单击并拖动并使用鼠标滚轮仅具有滚动效果时,如何禁用轻弹效果?
我是否应该改用 ScrollView,但我不能像使用 Flickable 那样滚动它。
【问题讨论】:
【参考方案1】:使用 onFlickStarted 您可以立即在您想要禁用的 flickable 上调用 cancelFlick()。然后使用 onContentYChanged 处理它。
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案2】:将“interactive”设置为 false 应该禁用轻弹。
您可以使用“onContentYChanged”代替“onFlickEnded”。
【讨论】:
Adding interactive: false 使用鼠标拖动和滚轮使其不可滚动,我想要滚动但禁用轻弹。以上是关于Qt Quick QML Flickable 禁用轻弹并仅启用滚动的主要内容,如果未能解决你的问题,请参考以下文章