放大Flickable在轮子事件上的内容

时间:2014-10-17 05:38:17

标签: qml qt5 qtquick2

默认情况下,Flickable滚动鼠标滚轮事件:如果按下Shift修改器则水平滚动;如果没有修改器处于活动状态则垂直滚动。我想覆盖此行为以使其放大/缩小。

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

1 个答案:

答案 0 :(得分:0)

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

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

                   }
                   else{
                       wheel.accepted=false
                   }
               }
}