Qt 如何在同一设备上分别处理两个鼠标?

Qt 如何在同一设备上分别处理两个鼠标?,qt,qml,qt5,Qt,Qml,Qt5,我有Qt5.10,为树莓Pi3交叉编译 我有一个基于QML的程序,在那里我捕获鼠标滚轮事件并执行一些函数 我想把另一只鼠标连接到我的树莓皮上。所以每个鼠标在我的程序中都有不同的功能 如何区分这两种鼠标设备 例如,我可以获取每个鼠标ID并相应地采取行动吗?使用一个按钮,您可以将两个鼠标作为单独的接触点来处理 但是,您可以处理的操作将受到限制。但使用按下的、释放的和触摸更新的信号,您可以轻松处理点击/拖动事件: MultiPointTouchArea { mouseEnabled: tru

我有Qt5.10,为树莓Pi3交叉编译

我有一个基于QML的程序,在那里我捕获鼠标滚轮事件并执行一些函数

我想把另一只鼠标连接到我的树莓皮上。所以每个鼠标在我的程序中都有不同的功能

如何区分这两种鼠标设备

例如,我可以获取每个鼠标ID并相应地采取行动吗?

使用一个按钮,您可以将两个鼠标作为单独的
接触点来处理

但是,您可以处理的操作将受到限制。但使用按下的
释放的
触摸更新的
信号,您可以轻松处理点击/拖动事件:

MultiPointTouchArea {

    mouseEnabled: true

    touchPoints: [
        // your 2 recognizable touchPoints for your 2 mice
        TouchPoint { id: point1 },
        TouchPoint { id: point2 }
    ]

    onPressed: {
        touchPoints.forEach(function(touchPoint) {
            if (touchPoint === point1) {
                console.log("FIRST MOUSE PRESSED:", touchPoint.x, touchPoint.y)
            } else if (touchPoint === point2){
                console.log("SECOND MOUSE PRESSED:", touchPoint.x, touchPoint.y)
            }
        })
    }

    onReleased: {
        touchPoints.forEach(function(touchPoint) {
            if (touchPoint === point1) {
                console.log("FIRST MOUSE RELEASED:", touchPoint.x, touchPoint.y)
            } else if (touchPoint === point2){
                console.log("SECOND MOUSE RELEASED:", touchPoint.x, touchPoint.y)
            }
        })
    }

    onTouchUpdated: {
        touchPoints.forEach(function(touchPoint) {
            if (touchPoint === point1) {
                console.log("FIRST MOUSE UPDATED:", touchPoint.x, touchPoint.y)
            } else if (touchPoint === point2){
                console.log("SECOND MOUSE UPDATED:", touchPoint.x, touchPoint.y)
            }
        })
    }
}
输出(仅使用单个鼠标进行测试,但应使用2个鼠标):


不幸的是,我想不出另一种解决方案能够捕获多个悬停/滚轮事件。

您不受操作系统本身的限制吗?我不知道,理论上它只是一个输入设备,所以我想我可以!!你能在屏幕上显示两个指针吗(不管你的应用程序如何)?如果我连接两个鼠标,我就能看到它们,它们同时动作!
qml: FIRST MOUSE PRESSED: 418 326
qml: FIRST MOUSE UPDATED: 419 327
qml: FIRST MOUSE UPDATED: 420 327
qml: FIRST MOUSE UPDATED: 421 327
qml: FIRST MOUSE UPDATED: 422 328
qml: FIRST MOUSE UPDATED: 423 328
qml: FIRST MOUSE UPDATED: 424 329
qml: FIRST MOUSE UPDATED: 425 329
qml: FIRST MOUSE UPDATED: 426 329
qml: FIRST MOUSE UPDATED: 427 329
qml: FIRST MOUSE RELEASED: 427 329