欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

关于qt触摸事件的有关问题

更新时间: 2014-01-05 02:43:28 责任编辑: Author_N1

 

关于Qt触摸事件的问题

bool GraphicsScene::event(QEvent *event){
    qDebug()<<event->type();
    switch (event->type()) {
    case QEvent::TouchBegin:
    {
        qDebug()<<"touch Begin";
        return true;
    }
    case QEvent::TouchUpdate:
    {
        qDebug()<<"touch Update";
        return true;
    }
    case QEvent::TouchEnd:
    {
        qDebug()<<"touch end";
        return true;
    }
    default:
        return QGraphicsScene::event(event);
}

这里,输出的事件代码只有197 , 没有QEvent的Touch事件(194,195,196)。求解,如何才能捕获到Touch事件
--参考方法--
确定两点:
1.设备支持touch事件(是触控设备);
2.需要设置窗口属性:setAttribute(Qt::WA_AcceptTouchEvents);  //接收touch消息
--参考方法--
引用:
确定两点:
1.设备支持touch事件(是触控设备);
2.需要设置窗口属性:setAttribute(Qt::WA_AcceptTouchEvents);  //接收touch消息


+1

确定下你的设备是否是触控设备,别是鼠标在那点击。
我在开发板上可以捕获到触控事件,没有问题!
--参考方法--
引用:
Quote: 引用:

是不是因为你没有对需要接受touch事件的GraphicsItem调用函数setAcceptTouchEvents(true)?因为GraphicsItem默认是不接受touch事件的。

在scene中,我还没有添加item到里面。我仅仅只是把touch设备连接上后,用手点击设备,然后在scene里面怎么都没有想要获取到的Touch信号


好吧,我只能说,虽然QGraphicsView是QWidget,但是还是和QWidget有很大区别。你还是加上item之后再去点item看能不能获得touch事件吧,你view里什么都没有添加,估计Qt把这个touch事件忽略了。同时你也要注意item默认是不接受touch事件的。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:43:28
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/13525/
本文WWW.DOC100.NET DOC100.NET版权所有。