默认情况下,Flickable
在鼠标滚轮事件上滚动:如果按下Shift修饰符,则水平滚动;如果没有任何修饰符处于活动状态,则垂直滚动。我想覆盖此行为,使其放大/缩小。
我试着用MouseArea
作为Flickable
的孩子。在onWheel
处理程序中定义所需的行为我得到了我想要的,但它破坏了轻弹功能。两个触摸点的运动在我的Mac上被识别为轮子事件,这阻止了Flickable
强化此事件(默认情况下MouseArea.preventSteeling
为false
)。所以我得到了一些混合缩放特征,它尊重Flickable
的速度/加速度行为。
在鼠标区域下方添加一个onWheel处理程序:
MouseArea
{
onWheel: {
if (wheel.modifiers & Qt.ControlModifier){
if (wheel.angleDelta.y > 0)
{
zoomin()
}
else
{
zoomout()
}
}
else{
wheel.accepted=false
}
}
}