我正在使用基于Listview的QML实现Imageviewer,其代理是图像。需要注意的是,图像会在整个屏幕上显示。我需要包含有助于放大图像的功能捏缩放。请建议任何好的来源或如何进行示例。
答案 0 :(得分:1)
我创建了一个用于捏缩放的演示,通过两个触点缩放rect
。
import QtQuick 2.5
import QtQuick.Controls 1.4
import QtQuick.Window 2.0
Window {
visible: true
width: 1000
height: 1000
title: qsTr("Hello World")
MultiPointTouchArea {
id: multiPoint
anchors.fill: parent
touchPoints: [
TouchPoint { id: point1 },
TouchPoint { id: point2 }
]
property real factor: 1
property bool isReleased: false // ignore the TouchUpdate after released
onTouchUpdated: {
if(isReleased){
isReleased = false
return
}
if(point1.x != 0 && point2.x != 0){
var s = Math.sqrt(Math.pow(point1.x - point2.x, 2) + Math.pow(point1.y - point2.y, 2)) /
Math.sqrt(Math.pow(point1.startX - point2.startX, 2) + Math.pow(point1.startY - point2.startY, 2))
rect.scale = s * factor
}
}
onReleased: {
factor = rect.scale
isReleased = true
}
}
Rectangle {
id: rect
anchors.centerIn: parent
width: 200; height: 200
color: "green"
}
}
更新:
还在Github中创建了用于缩放缩放的C ++ QQuickItem
模块。