Advertisement
Guest User

Untitled

a guest
Nov 30th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
QML 1.13 KB | None | 0 0
  1. import QtQuick 2.4
  2. import QtQuick.Controls 1.3
  3.  
  4. Flickable {
  5.     id: viewport
  6.     contentWidth: image.width * image.scale
  7.     contentHeight: image.height * image.scale
  8.     clip: true
  9.  
  10.     MouseArea {
  11.         id: zoomMouseArea
  12.         anchors.fill: parent
  13.         acceptedButtons: Qt.Wheel
  14.         hoverEnabled: false
  15.         onWheel: {
  16.             var newScale = image.scale * Math.pow(Math.sqrt(4),
  17.                                                   wheel.angleDelta.y / 120)
  18.             var scaleCoef = newScale / image.scale
  19.             var dx = wheel.x - viewport.contentX
  20.             var dy = wheel.y - viewport.contentY
  21.             var posx = (wheel.x) * scaleCoef - dx
  22.             var posy = (wheel.y) * scaleCoef - dy
  23.  
  24.             console.log(newScale, dx, dy, wheel.x, wheel.y)
  25.  
  26.             viewport.contentX = posx
  27.             viewport.contentY = posy
  28.  
  29.             image.scale = newScale
  30.         }
  31.     }
  32.  
  33.     Image {
  34.         id: image
  35.         source: "file:///home/bulkin/Pictures/wmii01.png"
  36.         asynchronous: true
  37.         cache: false
  38.         mipmap: true
  39.         transformOrigin: Item.TopLeft
  40.     }
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement