zoukankan      html  css  js  c++  java
  • qml: 以鼠标为中心进行放缩;

    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;
                        }
                    }
                }
    
            }
        }
    }
    

      

  • 相关阅读:
    文本字符集转换
    添加HP消息队列
    fedora19/opensuse13.1 配置svn client
    前端html---介绍前端,标签,列表
    数据分析1
    项目流程
    git 使用
    mongo基础
    linux上面pycharm汉化
    pythonNet 09协程
  • 原文地址:https://www.cnblogs.com/yinwei-space/p/9300979.html
Copyright © 2011-2022 走看看