首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用python-uinput将触摸事件写入uinput

无法使用python-uinput将触摸事件写入uinput
EN

Stack Overflow用户
提问于 2018-03-27 04:50:47
回答 1查看 551关注 0票数 2

我正在尝试编写触摸事件。我正在使用相机来跟踪手,所以我需要两个指针,并且我需要显示它们。

这就是我尝试过的方法,但它没有任何作用:

代码语言:javascript
复制
import uinput
import time

device = uinput.Device([
        uinput.BTN_TOUCH,
        uinput.BTN_TOOL_PEN,
        # uinput.INPUT_PROP_POINTER,  # This property doesn't exist... what is the alternative?
        uinput.ABS_X,
        uinput.ABS_Y,
        ])
time.sleep(1)

device.emit(uinput.ABS_X, 5)
device.emit(uinput.ABS_Y, 5)

device.emit(uinput.BTN_TOUCH, 1)

for i in range(20):
    time.sleep(0.01)
    device.emit(uinput.ABS_Y, 5 * i)

device.emit(uinput.BTN_TOUCH, 0)

但是,使用鼠标工作:

代码语言:javascript
复制
import uinput
import time

device = uinput.Device([
        uinput.BTN_LEFT,
        uinput.BTN_RIGHT,
        uinput.REL_X,
        uinput.REL_Y,
        ])
time.sleep(1)

for i in range(20):
    time.sleep(0.01)
    device.emit(uinput.REL_Y, 5)

但我需要绝对定位而不是相对定位。

我可以看到来自终端的事件进行调试吗?

我希望能够有2个指针,绝对定位,触摸/点击,悬停(BTN_TOOL_PEN),我的意图是允许拖动/滚动。任何关于我应该使用什么事件的指导和一个简单的工作示例都会很棒!

我不能让evdev工作,但也欢迎回答这个问题。

EN

回答 1

Stack Overflow用户

发布于 2018-03-30 21:46:41

我假设您正在某个服务器上使用这些设备事件?X11?删除uinput.BTN_TOOL_PEN并定义每个赋值器的范围:

代码语言:javascript
复制
    uinput.BTN_TOUCH,
    uinput.ABS_X + (0, 2**24-1, 0, 0),
    uinput.ABS_Y + (0, 2**24-1, 0, 0),
    uinput.ABS_PRESSURE + (0, 255, 0, 0),

如果您仍然有问题,请关注您的Xorg日志文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49500388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档