首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

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

2014-01-03 
关于Qt触摸事件的问题bool GraphicsScene::event(QEvent *event){qDebug()event-type()switch (event-

关于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事件 获取QTouchEvent
[解决办法]
确定两点:
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事件的。

热点排行