import QtQuick 2.9 import QtQuick.Window 2.2 import QtQuick.Controls 2.2 Window { visible: true 640 height: 700 title: qsTr("Hello World") Rectangle{ id:rect; 500; height:400; clip:true; Image{ id: img; x:( rect.width - width)/2; y: (rect.height - height)/2; { var ratio = rect.width/rect.height; var srcRatio = sourceSize.width/sourceSize.height; if( ratio > srcRatio ) return height * srcra ; else return rect.width; } height:{ var ratio = rect.width/rect.height; var srcRatio = sourceSize.width/sourceSize.height; if(ratio > srcRatio) return rect.height; else return width / srcRatio; } source: "tvline.jpg" } MouseArea{ anchors.fill: parent; drag.target:img; hoverEnabled: true; drag.axis:Drag.XAndYAxis; drag.minimumX: -img.width/2; drag.maximumX: img.width/2; drag.minimumY: - img.height/2; drag.maximumY: img.height/2; onWheel:{ //滚轮; if(wheel.modifiers & Qt.ControlModifier ) { var datl = wheel.angleDelta.y/120; if( datl > 0) { console.log("mouseX:"+mouseX+";mouseY:"+mouseY+";imgX:"+img.x+";imgY"+img.y) img.x = mouseX + (img.x - mouseX) * 1.1; img.y = mouseY +(img.y - mouseY) *1.1; img.width = img.width * 1.1; img.height = img.height * 1.1; } else { console.log("mouseX:"+mouseX+";mouseY:"+mouseY+";imgX:"+img.x+";imgY"+img.y) img.x = mouseX + (img.x - mouseX) / 1.1; img.y = mouseY +(img.y - mouseY) /1.1; img.width = img.width /1.1; img.height = img.height / 1.1; } } } } } }