Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import QtQuick 2.4
- import QtQuick.Controls 1.3
- Flickable {
- id: viewport
- contentWidth: image.width * image.scale
- contentHeight: image.height * image.scale
- clip: true
- MouseArea {
- id: zoomMouseArea
- anchors.fill: parent
- acceptedButtons: Qt.Wheel
- hoverEnabled: false
- onWheel: {
- var newScale = image.scale * Math.pow(Math.sqrt(4),
- wheel.angleDelta.y / 120)
- var scaleCoef = newScale / image.scale
- var dx = wheel.x - viewport.contentX
- var dy = wheel.y - viewport.contentY
- var posx = (wheel.x) * scaleCoef - dx
- var posy = (wheel.y) * scaleCoef - dy
- console.log(newScale, dx, dy, wheel.x, wheel.y)
- viewport.contentX = posx
- viewport.contentY = posy
- image.scale = newScale
- }
- }
- Image {
- id: image
- source: "file:///home/bulkin/Pictures/wmii01.png"
- asynchronous: true
- cache: false
- mipmap: true
- transformOrigin: Item.TopLeft
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement