QT:触摸屏支持手指触摸,增加touch事件touchevent,记录前后touch坐标并处理

QT:增加手指触摸touch事件touchevent,记录前后坐标并处理
摘要由CSDN通过智能技术生成

QT:触摸屏支持手指触摸,增加touch事件touchevent,记录前后touch坐标并处理

1、手指触摸事件当做鼠标事件去响应的可行性

目前所见,有的QT关于触摸屏触摸事件的处理,是把手指点击屏幕的行为,作为鼠标事件去处理的,这样的情况在大部分场景是可以“应付应付”的,但是如果在如下场景(可能更多)这样的处理显然就不满足了。

比如如下场景:【手指点击空白处退出当前的窗口】

是鼠标点击的话,假设没有移动,MouseButtonPress 和 MouseButtonRelease记录的坐标point其实是同一个点,这样的判断是没有问题的。

可是,如果现在手指点击,手指和触摸屏的接触点可就不一样了,手指接触屏幕上去就不是一个点了。这个场景下,就需要touchevent事件,去处理手指触摸事件了。

2、触摸事件touchEvent的添加

首先,让在需要加touch事件的控件能够接收touch;

    this->setAttribute(Qt::WA_AcceptTouchEvents);

随后,事件过滤器增加如下三个事件,就好了,一般都是重写一下

TouchBegin   // 开始触摸
TouchUpdate  // 状态更新,不如手指滑动之类的
TouchEnd    //  手指松开,结束触摸
3、重写touch事件

头文件如下:

private:
    bool touchBeginEventProcess(QEvent *event);
    bool touchUpdateEventProcess(QEvent *event);
    bool touchEndEventProcess(QEvent *event);

函数,事件过滤器

bool WidgetTouch::eventFilter(QObject *object, QEvent *event
  • 11
    点赞
  • 122
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值