【问题标题】:Qt Quick QML Flickable disable flicking and enable only scrollingQt Quick QML Flickable 禁用轻弹并仅启用滚动
【发布时间】: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 那样滚动它。

【问题讨论】:

    标签: qt qml qtquick2 qtquickcontrols2 flickable


    【解决方案1】:

    使用 onFlickStarted 您可以立即在您想要禁用的 flickable 上调用 cancelFlick()。然后使用 onContentYChanged 处理它。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    【解决方案2】:

    将“interactive”设置为 false 应该禁用轻弹。

    您可以使用“onContentYChanged”代替“onFlickEnded”。

    【讨论】:

    • Adding interactive: false 使用鼠标拖动和滚轮使其不可滚动,我想要滚动但禁用轻弹。
    猜你喜欢
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多