经过跟踪,qt 已经支持多点触摸,但是多点触摸信息没有传进osgQt::GraphicsWindowQt里,解决办法自己传进去

事件过滤,让界面接受多点触摸

setAttribute(Qt::WA_AcceptTouchEvents);

事件处理函数

中间部分有参考一个博客资料,忘了是哪了
bool QtOsgWidget::event(QEvent *event)
{
switch (event->type()) 
{
case QEvent::TouchBegin:
case QEvent::TouchUpdate:
case QEvent::TouchEnd:
{
QList<QTouchEvent::TouchPoint> touchPoints = static_cast<QTouchEvent *>(event)->touchPoints();
if(touchPoints.count() >= 2)
{

osg::ref_ptr<osgGA::GUIEventAdapter> osg_event(NULL);
foreach (const QTouchEvent::TouchPoint &touchPoint, touchPoints)
{
QPointF touchPos = touchPoint.pos();
//touchPos.rx() /= width(); touchPos.ry() /= height();
//touchPos.rx() *= 100; touchPos.ry() *= 100;
test
//std::cout << "x:" << touchPos.x() << "\t" << "y:" << touchPos.y() << "\t";
printf("x =%f, y=%f\n", touchPos.x(), touchPos.y());
if(touchPoint.state() == Qt::TouchPointPressed)
{
if (!osg_event) 
{
osg_event =  _gw->getEventQueue()->touchBegan( touchPoint.id(), osgGA::GUIEventAdapter::TOUCH_BEGAN, touchPos.x()  , touchPos.y());
} else 
{

osg_event->addTouchPoint( touchPoint.id(), osgGA::GUIEventAdapter::TOUCH_BEGAN, touchPos.x() , touchPos.y());
}
}
else if(touchPoint.state() == Qt::TouchPointMoved)
{
if (!osg_event) 
{
osg_event =  _gw->getEventQueue()->touchMoved( touchPoint.id(), osgGA::GUIEventAdapter::TOUCH_MOVED, touchPos.x(), touchPos.y());
} else 
{
osg_event->addTouchPoint( touchPoint.id(), osgGA::GUIEventAdapter::TOUCH_MOVED, touchPos.x() , touchPos.y());
}
}
else if(touchPoint.state() == Qt::TouchPointReleased)
{
// No double tap detection with RAW TOUCH Events, sorry.
if (!osg_event) 
{
osg_event =  _gw->getEventQueue()->touchEnded( touchPoint.id(), osgGA::GUIEventAdapter::TOUCH_ENDED, touchPos.x(), touchPos.y(), 1);
} else 
{
osg_event->addTouchPoint( touchPoint.id(), osgGA::GUIEventAdapter::TOUCH_ENDED, touchPos.x() , touchPos.y());
}
}

}

return true;
break;
}
}
default:
return QWidget::event(event);
}
return QWidget::event(event);
}

把多点触摸信息传进去

这样在osg里可以两个手指移动物体了,但是物体比较灵敏,参考MultiTouchTrackballManipulator ,重够这个类,让灵敏度能适应使用

qt osg 多点触摸相关推荐

  1. ARM QT实现多点触摸【转】

    转自:http://www.cnblogs.com/sky1991/archive/2013/06/03/3114702.html http://www.ptrackapp.com/apclassys ...

  2. android怎么监听多点触摸_什么是多点触控技术,有哪些用途

    自从乔布斯将触控技术用于苹果手机上,很多的手机厂商纷纷效仿,触控技术几乎成为手机的"标配".其实,触控技术早就存在,只是一直未能大面积用于各种设备中,本文将带您认识神奇的触控技术. ...

  3. VS 2010中对WPF4有哪些多点触摸支持?

    随着多点触摸输入和操作处理支持的引进, WPF 4提供了一个极棒的方式,可在Windows 7中使你的客户端应用大放光彩,新的特性包括: UIElement上的多点触摸操作.惯性(漫游(Pan).缩放 ...

  4. Android多点触摸交互处理,放大缩小图片

    多点触摸(MultiTouch),指的是允许计算机用户同时通过多个手指来控制图形界面的一种技术.与多点触摸技术相对应的就是单点触摸,单点触摸的设备已经有很多年了,小尺寸的有触摸式的手机,大尺寸的最常见 ...

  5. android怎么监听多点触摸_大尺寸触摸屏厂家定制多点触摸框

    深圳融创方圆是订做红外大尺寸触摸屏生产厂家,弧形/直角/异形/U型大尺寸红外多点触摸框定做15寸-1000寸超大尺寸红外触控屏可以用于配合液晶拼接屏,DLP拼接屏,无缝拼接屏,小间距LED.互动投影. ...

  6. 基于Visual C++2010与windows SDK fo windows7开发Windows 7的多点触摸特性应用程序(1)

    2008年5月28日,微软即将退休的精神领袖比尔·盖茨和首席执行官史蒂夫·鲍尔默共同在北圣地亚哥四季艾维亚拉洲际度假村举办的2008 D6 All Things数字化大会上向到场的嘉宾展示了windo ...

  7. WP7开发—Silverlight多点触摸事件详解【含Demo代码】

    最近在学习WP7的Silverlight编程,就把学习到知识点整理为日志,方便自己理解深刻点,也作为笔记和备忘,如有不合理或者错误之处,还恳请指正. WP7的支持多点触摸,有两种不同的编程模式: 1. ...

  8. Windows Phone 7 多点触摸编程

    一.基本的程序结构 一个需要响应多点触控的 Silverlight 应用程序必须将一个处理程序连接到静态 Touch.FrameReported 事件: Touch.FrameReported += ...

  9. Linux/Android多点触摸协议

    链接点击打开链接 关于Linux多点触摸协议大家可以参考kernel中的文档:https://www.kernel.org/doc/Documentation/input/multi-touch-pr ...

  10. Linux Android 多点触摸协议 原文出自【比特网】,转载请保留原文链接:http://soft.chinabyte.com/os/71/12306571.shtml

    为了使用功能强大的多点触控设备,就需要一种方案去上报用户层所需的详细的手指触摸数据.这个文档所描述的多点触控协议可以让内核驱动程序向用户层上报任意多指的数据信息. 使用说明 单点触摸信息是以ABS承载 ...

最新文章

  1. 【c语言】蓝桥杯基础练习 回文数
  2. html5新特性:利用history的pushState等方法来解决使用ajax导致页面后退和前进的问题
  3. html5实践开发教程,HTML5基础与实践教程
  4. 启动mysql的innodb monitor功能
  5. Zynq ZC702平台 QSPI + eMMC实现
  6. 关于上上文hashmap的深入-hashmap产生死锁的详解
  7. jquery批量控制form禁用的代码
  8. linux获取主板温度电压_主板供电
  9. 网络能力认证CCSC-管理1级 技术1级别
  10. C语言中如何求幂函数
  11. 这里有你最想掌握的区块链技术
  12. 计算机毕业设计Java物流站环境监测系统(源码+系统+mysql数据库+Lw文档)
  13. Java的时代依然还在,合格的Java工程师成为紧缺人才
  14. keras自动编码器实现系列之卷积自动编码器
  15. 佳明表盘 c语言开发的吗,Garmin MonkeyC的写法和经验
  16. 实战精通OpenCV第一章--基于Android的图片卡通化及肤色改变(三)
  17. 数据库篇之数据表-BrnShop1.9升级至2.1升级说明(非官方版本)
  18. java 井号转义字符,井号'#'用英语怎么说(计算机字符 - 英文读音)
  19. java tomcat jvm内存_Tomcat修改JVM内存,修改了就是不生效,
  20. 新一年最期望在公司从事哪些工作

热门文章

  1. 微信小程序开发(7)---协同工作篇
  2. 产品设计:Material Design 学习笔记一
  3. excel中多条件求和_在Excel中求和的7种方法
  4. Android Startup实现分析
  5. AIDA64内存与缓存测试过了算稳定吗_【AMD R52600X】装机实录、基本特性介绍及性能测试...
  6. 计算机控制电机启动接线图,电机控制线路图大全(上下)
  7. 开发QQ桌球瞄准器(5):使用注册表保存配置
  8. metricbeat监控mysql_metricbeat
  9. 谷歌浏览器突然不能翻译了怎么解决?
  10. webrtc QOS方法一.2(接收端NACK流程实现)