1. 程式人生 > >QML之圖片拖拽與縮放

QML之圖片拖拽與縮放

方法

這裡使用的是drag屬性實現,其實還可以將圖片置於ScrollView中實現拖拽,或者是放在Flickable中。

效果

程式碼

import QtQuick 2.9
import QtQuick.Window 2.2

Window {
    visible: true
    width: 1620
    height: 720
    title: qsTr("Hello World")

    Item{
        id: mapItemArea
        width: 1600
        height: 700
        anchors.centerIn: parent
        clip: true
        Image {
            id: mapImg
            //這裡使圖片居中顯示
            x: mapItemArea.width/2-mapImg.width/2
            y: mapItemArea.height/2-mapImg.height/2
            source: "file:///C:/Image/myPic.jpg"
            //影象非同步載入,只對本地影象有用
            asynchronous: true
        }
        MouseArea {
            id: mapDragArea
            anchors.fill: mapImg
            drag.target: mapImg
            //這裡使圖片不管是比顯示框大還是比顯示框小都不會被拖拽出顯示區域
            drag.minimumX: (mapImg.width > mapItemArea.width) ? (mapItemArea.width - mapImg.width) : 0
            drag.minimumY: (mapImg.height > mapItemArea.height) ? (mapItemArea.height - mapImg.height) : 0
            drag.maximumX: (mapImg.width > mapItemArea.width) ? 0 : (mapItemArea.width - mapImg.width)
            drag.maximumY: (mapImg.height > mapItemArea.height) ? 0 : (mapItemArea.height - mapImg.height)

            //使用滑鼠滾輪縮放
            onWheel: {
                //每次滾動都是120的倍數
                var datla = wheel.angleDelta.y/120;
                if(datla > 0)
                {
                    mapImg.scale = mapImg.scale/0.9
                }
                else
                {
                    mapImg.scale = mapImg.scale*0.9
                }
            }
        }
    }
}

相關推薦

QML圖片

方法 這裡使用的是drag屬性實現,其實還可以將圖片置於ScrollView中實現拖拽,或者是放在Flickable中。 效果 程式碼 import QtQuick 2.9 import QtQuick.Window 2.2 Window { visib

圖片、旋轉

$('body').on('click', '.imgScale', function() { $('body').append('<div class="img-dialog" style="position:fixed;z-index:999

Android開發學習ImageView手勢、旋轉

           在Android應用中,圖片隨手勢的拖拽、縮放、旋轉在很多場景中都會用到,今天我們要做的就是在ImageView的基礎上實現一個可以拖拽、縮放、轉轉的TouchView。              一、實現原理              OnTouc

js仿百度地圖、添加圖層功能(原創)

ets tle clas 火狐 相對 inner tlist posit css 最近項目中完成的需求,仿百度地圖中的功能: 要求:1.底層圖可以拖拽、縮放。    2.拖拽一個圖標,在底層圖上對應位置添加一個標註點,該標註點位置要隨底層圖移動。    3.添加的標註

java實現圖片的合併

公司有一個需求是 將一個二維碼放在 一個背景圖當中。 因為二維碼是從微信小程式官方獲取的一個byte[],所以需要做一定的調整。   BufferedImage ground = ImageIO.read(this.getClass().getClassLoader().getResource

js仿百度地圖、新增圖層功能(原創)

最近專案中完成的需求,仿百度地圖中的功能: 要求:1.底層圖可以拖拽、縮放。       2.拖拽一個圖示,在底層圖上對應位置新增一個標註點,該標註點位置要隨底層圖移動。    3.新增的標註點,可以拖動,刪除。 主要知識點和難點就是各個瀏覽器的點選、拖拽、縮放事件相容性,對js運動屬性、運動偏移位置的瞭解,

微信小程式的和旋轉手勢

在開發中,有時會遇到像App中的手勢那樣的效果,下面就仿照App實現了一下。 wxml部分: <view class="touch-container"> <view class="msg">{{msg}}</view> <image clas

微信小程序的和旋轉手勢

back start tle ring ffffff 部分 wxs absolut enter 在開發中,有時會遇到像App中的手勢那樣的效果,下面就仿照App實現了一下。 wxml部分: &lt;view class="touch-container&

Android 使用變形矩陣實現可以,旋轉的影象

上篇博文介紹了變形矩陣的一些用法,所以這篇博文就結合變形矩陣來實現一個可以拖拽、縮放、旋轉的影象吧。 首先,我們就繼承ImageView來實現我們的自定義View。 程式碼如下: public class MyMatrixImg extends Ima

原生JS實現圖片移動

rgb asc col ice head () etl ini size <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name

HTML5 drag & drop

執行 javascrip eve eight 觸發 元素 padding 軟件 測試 關鍵詞: 1. draggable:規定元素是否可拖動的,draggable=true可拖動 2. dataTransfer:拖拽對象用來傳遞的媒介,使用方式:event.dataTran

我的Android進階旅------>Android自定義View來實現解析lrc歌詞並同步滾動、上下動、歌詞的功能

前言 最近有個專案有關於播放音樂時候,關於歌詞有以下幾個功能: 1、實現歌詞同步滾動的功能,即歌曲播放到哪句歌詞,就高亮地顯示出正在播放的這個歌詞; 2、實現上下拖動歌詞時候,可以拖動播放器的進度。即可以不停地上下拖動歌詞,

QML圖片動態顯示(ImageQQuickImageProvider)

最近,需要在QML上顯示來自OPenCV的攝像頭視訊,因為是視訊,即好多好多圖片,所以需要QML上動態重新整理來自C++的QImage。具體怎麼搞我就不再贅述,雖然資料不多,但是CSDN上的一篇部落格已經寫得十分的清楚。該部落格如下: 前言 開發Qt應用時,想把QImage

iOS UIImageView實現圖片的移動和

在這個方法中,我們採用了一種特殊的處理方式:擷取大圖片的一部分,並將擷取部分顯示在imageView裡。我這樣做的理由,是因為這是最簡單、最容易的實現方式。我參考過網上的幾種實現方式,發現基本上都需要使用Quartz2D API,並且實現起來要複雜得多。最終從閉路電視監控系統中得到了啟發(想象一下

Android自定義imageview可對圖片進行多點

package com.msstudent.view; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import andro

WPF圖片預覽移動、旋轉、

initial this code pty rgb sel 怎麽 nta edi 原文:WPF圖片預覽之移動、旋轉、縮放 RT,這個功能比較常見,但凡涉及到圖片預覽的都跑不了,在

上傳圖片時等比的一個小小算法

lba sim image 委托 fromfile tps 獲取 head 引用 protected void Button1_Click(object sender, EventArgs e) { int width = 300, h

圖片原生js

osi char tel function lan bsp on() body oev <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> &l

圖片的繼承,引用 1 (需要引入2,3兩個js才能運行)

type left set height har title back 運行 fun <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <

面向對象實戰封裝對象

詳情 on() 時間 var 鏈接 posit 技術分享 mouseup remove 面向對象實戰之封裝拖拽對象 利用前面幾章的所涉及到的知識,封裝一個拖拽對象。為了能夠幫助大家了解更多的方式與進行對比,我會使用三種不同的方式來實現拖拽。 不封裝對象直接實現; 利用