注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

沙漠里de烟雨

原创分享,禁止转载

 
 
 

日志

 
 

QML 多点触控  

2017-05-11 02:42:12|  分类: QT5.x与QML |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
xx.pro:
QT += qml quick

main.cpp =>
#include <QGuiApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

    return app.exec();
}

main.qml =>
import QtQuick 2.3
import QtQuick.Window 2.2

Window
{
    visible: true
    width:400
    height:400

    MultiPointTouchArea
    {
        enabled: true
        mouseEnabled: true
        anchors.fill: parent
//        touchPoints: [
//            TouchPoint {id:point1},
//            TouchPoint {id:point2}
//        ]

        property variant pressedArray:[]
        property variant releasedArray:[]
        function pressedEvent(item)
        {
            if(item.sceneX>=rect1.x && item.sceneX<=rect1.x+rect1.width && item.sceneY>=rect1.y && item.sceneY<=rect1.y+rect1.height)
            {
                rect1.color = "red";
            }
            if(item.sceneX>=rect2.x && item.sceneX<=rect2.x+rect2.width && item.sceneY>=rect2.y && item.sceneY<=rect2.y+rect2.height)
            {
                rect2.color = "red";
            }
        }
        function releasedEvent(item)
        {
            if(item.sceneX>=rect1.x && item.sceneX<=rect1.x+rect1.width && item.sceneY>=rect1.y && item.sceneY<=rect1.y+rect1.height)
            {
                rect1.color = "green";
            }
            if(item.sceneX>=rect2.x && item.sceneX<=rect2.x+rect2.width && item.sceneY>=rect2.y && item.sceneY<=rect2.y+rect2.height)
            {
                rect2.color = "green";
            }
        }
        onPressed:
        {
            pressedArray = touchPoints;
            var nCount = pressedArray.length;
            for(var i=0;i<nCount;i++)
            {
                pressedEvent(pressedArray[i]);
            }
        }
        onReleased:
        {
            releasedArray = touchPoints;
            var nCount = releasedArray.length;
            for(var i=0;i<nCount;i++)
            {
                releasedEvent(releasedArray[i]);
            }
        }
    }

//    function havePressed(rectId,xpt1,ypt1,xpt2,ypt2)
//    {
//        if(xpt1>=rectId.x && xpt1<=rectId.x+rectId.width && ypt1>=rectId.y && ypt1<=rectId.y+rectId.height)
//        {
//            rectId.color = "red";
//        }
//        else if(xpt2>=rectId.x && xpt2<=rectId.x+rectId.width && ypt2>=rectId.y && ypt2<=rectId.y+rectId.height)
//        {
//            rectId.color = "red";
//        }
//    }
//    function haveReleased(rectId)
//    {
//        rectId.color = "green";
//    }

    Column
    {
        x:50
        y:50
        anchors.fill: parent
        spacing: 100

        Rectangle
        {
            id:rect1
            width:300
            height:100
            color:"green"
//            MouseArea
//            {
//                id:ma1
//                anchors.fill: parent
//                onPressed: havePressed(rect1,point1.x,point1.y,point2.x,point2.y)
//                onReleased: haveReleased(rect1)
//            }
//            states:State
//            {
//                when:ma1.pressed
//                PropertyChanges {
//                    target: rect1
//                    color:"red"
//                }
//            }
        }

        Rectangle
        {
            id:rect2
            width:300
            height:100
            color:"green"
//            MouseArea
//            {
//                id:ma2
//                anchors.fill: parent
//                onPressed: havePressed(rect2,point1.x,point1.y,point2.x,point2.y)
//                onReleased: haveReleased(rect2)
//            }
//            states:State
//            {
//                when:ma2.pressed
//                PropertyChanges {
//                    target: rect2
//                    color:"red"
//                }
//            }
        }
    }
}


  评论这张
 
阅读(8)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017