使用Wacom Bamboo和Qt 5.2进行缩放,平移和旋转

Kor*_*idu 5 c++ qt wacom qml qtquick2

我想从Wacom Bamboo中检索事件,并将它们用于Qt Quick 2应用程序中的缩放,平移和旋转行为.

看一下photosurface示例,看起来他们正在做类似的事情:

  MouseArea
  {
    id: dragArea
    hoverEnabled: true
    anchors.fill: parent

    onWheel:
    {
      if (wheel.modifiers & Qt.ControlModifier)
      {
         ...
      }
      else
      {
         ...
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)

但是,轮子事件不能提供足够的信息来确定所执行的手势.而photosurface示例与Wacom Bamboo无法正常工作.

那么,将Wacom设备与Qt Quick 2应用程序集成的正确方法是什么?

如果Qt Quick 2站点上没有解决方案,那么可以将Wacom设备与C++ Qt Widget应用程序集成吗?

附加信息

在此输入图像描述

我得到的事件是(更改值被"<< >>"包围,相对于其他手势的特定值被"== =="包围):

wheel.buttons: 0
wheel.modifiers: == 0 ==
wheel.pixelDelta: QPoint(0, 0)
wheel.angleDelta: QPoint(0, << 21 >>)
wheel.x: 205
wheel.y: 279
Run Code Online (Sandbox Code Playgroud)

这里,垂直和水平平移只有一个值发生了变化.

放大

在此输入图像描述

我得到的事件是(更改值被"<< >>"包围,相对于其他手势的特定值被"== =="包围):

在这里,相同的值正在改变.请注意,捏合手势作为"Ctrl +鼠标滚轮"事件发送

wheel.buttons: 0
wheel.modifiers: == 67108864 ==
wheel.pixelDelta: QPoint(0, 0)
wheel.angleDelta: QPoint(0, << 40 >>)
wheel.x: 323
wheel.y: 291
Run Code Online (Sandbox Code Playgroud)

ROTATE 我得到与ZOOM手势完全相同的值...