【问题标题】:How to have draggable items inside of a Flickable while maintaining Flickable functionality?如何在保持 Flickable 功能的同时在 Flickable 中包含可拖动项目?
【发布时间】:2015-06-25 04:51:24
【问题描述】:

目前我有一个带有网格的 Flickable。网格包含一堆正方形。 Flickable 在这里工作得很好。我可以上下滚动并查看我所有的方格。但现在我希望能够在我的 Flickable 中拖动方块。

所以我添加了一个 MouseArea 并设置了适当的拖动目标。现在可以拖动方块了!然而,方块似乎从 Flickable 中窃取了鼠标事件。所以滚动 Flickable 的唯一方法是将鼠标光标拖到方块之间的空间上(非常难!)

这是我的代码:

Flickable {
    id: flickable
    contentHeight: grid.height
    anchors.fill: parent

    Grid {
        id: grid
        width: parent.width
        spacing: 2

        Repeater {
            id: repeater
            model: 40
            delegate: tile
        }
    }
}

Component {
   id: tile

   Rectangle {
       id: rect
       width: 128
       height: 128
       color: "black"

       MouseArea {
           id: mouseArea
           anchors.fill: parent
           drag.target: rect
       }
   }
}

非常感谢任何帮助。谢谢!

【问题讨论】:

  • 在我看来,代码运行良好。它怎么可能区分尝试滚动Flickable 并在其上拖动项目的人?这不是通灵的。这是一个设计问题,显而易见的解决方案是为用户添加更多空间,以便更轻松地访问Flickable

标签: qt qml


【解决方案1】:

感谢this post 我被告知了 Flickable 的 pressDelay 属性。这已经解决了我的问题!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-19
    • 1970-01-01
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多