首页 > 其他 > 详细

QML手势及多点触摸之PinchArea

时间:2014-07-29 16:08:09      阅读:1307      评论:0      收藏:0      [点我收藏+]

PinchArea

可以参看PinchArea文档。下面是SDK自带的demo。通过此demo可以了解PinchArea的使用。
PinchArea实现了“挤压”操作。
要点:在onPinchStarted、onPinchUpdated、onPinchFinished三个槽函数中,均可以使用一个内置的pinch参数。这个参数是一个PinchEvent实例(instance)。

import QtQuick 1.1

Rectangle {
width: 640
height: 360
color: "gray"

Flickable {
    id: flick
    anchors.fill: parent
    contentWidth: 500
    contentHeight: 500

    PinchArea {
        width: Math.max(flick.contentWidth, flick.width)
        height: Math.max(flick.contentHeight, flick.height)

        property real initialWidth
        property real initialHeight
        onPinchStarted: {
            initialWidth = flick.contentWidth
            initialHeight = flick.contentHeight
        }

        onPinchUpdated: {
            // adjust content pos due to drag
            flick.contentX += pinch.previousCenter.x - pinch.center.x
            flick.contentY += pinch.previousCenter.y - pinch.center.y

            // resize content
            flick.resizeContent(initialWidth * pinch.scale, initialHeight * pinch.scale, pinch.center)
        }

        onPinchFinished: {
            // Move its content within bounds.
            flick.returnToBounds()
        }

        Rectangle {
            width: flick.contentWidth
            height: flick.contentHeight
            color: "white"
            Image {
                anchors.fill: parent
                source: "qt-logo.jpg"
                MouseArea {
                    anchors.fill: parent
                    onDoubleClicked: {
                        flick.contentWidth = 500
                        flick.contentHeight = 500
                    }
                }
            }
        }
    }
}
}

其他不再赘述。很简单。

QML手势及多点触摸之PinchArea,布布扣,bubuko.com

QML手势及多点触摸之PinchArea

原文:http://my.oschina.net/xishvaigo/blog/295855

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!