【问题标题】:Zoom Flickable's content on wheel eventZoom Flickable 的内容 on wheel 事件
【发布时间】:2014-10-17 05:38:17
【问题描述】:

默认情况下,Flickable 在鼠标滚轮事件上滚动:如果按下 Shift 修饰符,则水平滚动,如果没有激活修饰符,则垂直滚动。我想覆盖此行为以使其放大/缩小。

我尝试将MouseArea 用作Flickable 的子级。在onWheel 处理程序中定义所需的行为我得到了我想要的,但它破坏了轻弹功能。两个触摸点的运动在我的 Mac 上被识别为滚轮事件,阻止 Flickable 强化此事件(MouseArea.preventSteeling 默认为 false)。所以我得到了一些混合缩放功能,它尊重Flickable 的速度/加速度行为。

【问题讨论】:

    标签: qml qt5 qtquick2


    【解决方案1】:

    在 MouseArea 下添加一个 onWheel 处理程序:

    MouseArea
    {
                   onWheel: {
                       if (wheel.modifiers & Qt.ControlModifier){
                           if (wheel.angleDelta.y > 0)
                           {
                               zoomin()
                           }
                           else
                           {
                               zoomout()
                           }
    
                       }
                       else{
                           wheel.accepted=false
                       }
                   }
    }
    

    【讨论】:

    • 您也可以在 MuseArea 上添加常用的 anchors.fill: parent 以使 onWheel 有任何效果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-05
    相关资源
    最近更新 更多