qml中使用多点触摸

下面以Pinch手势(捏合手势)为例子,讲解如何在QML中实现多点触摸,qt源码中有相应工程,路径为example/declarative/touchinteraction/pincharea。


注册和导入

PinchArea作为QDeclarativeItem的子类,只要qml文件导入相应包(import QtQuick 1.1),可以直接在qml中申明并初始化。PinchArea注册 QtQuick 1.1的地方见declarative/graphicsitems/qdeclarativeitemsmodule.cppL179,注意类名前面都带有QDeclarative前缀。

类申明与定义

QdeclarativePinchArea的头文件见
declarative/graphicsitems/qdeclarativepincharea_p.h,注意一定要从QDeclarativeItem继承。QdeclarativePinchArea4个信号函数,利用Q_SIGNALS定义,在qml中实例化一个PinchArea时可以同时实现其响应函数,见onPinchStartedonPinchUpdatedonPinchFinished。对Pinch手势的识别见QDeclarativePinchArea::updatePinch(),如果识别到Pinch手势,会相应发送startupdatefinished信号,见emit关键字。
 qml中的onPinchStartedonPinchUpdatedonPinchFinished方法定义了信号传过来时控件应做的动作,这三个方法中直接使用的pinch对象,是信号函数的形参,即一个QDeclarativePinchEvent对象。

理论上这样就可以让控件对pinch手势做出响应,如果不行,请查看平台是否支持多点



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值