Qml Image 截取一部分图片形式

Qml Image 截取一部分 :每次只显示一张图片的一部分,以有不同的状态显示

将这个图形每次只显示一部分出来:



想了好久,才找到实现的方法:


运行效果:

    


============================================================================

再来一个升级版的小程序:

import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.2


Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    property int n: 0




    Rectangle{
        id:show_Button_rect
        width: 114   //4*114*50
        height: 50
        color: "red"  //透明颜色
        clip: true
        state: "d"

        Image {
            id: picture
            width:show_Button_rect.width*4
            height:show_Button_rect.height
            //fillMode: Image.Stretch  //图片扩展方式填充
            source: "qrc:/images/qml2.png"
            x:0
            y:0
        }


        MouseArea{
            hoverEnabled: true  //悬停使用
            anchors.fill:parent
            onEntered: show_Button_rect.state == "d"? show_Button_rect.state = "d": show_Button_rect.state = "a"   //进入是"a"状态
            onExited: show_Button_rect.state == "d"? show_Button_rect.state = "d": show_Button_rect.state = "c"    //离开是"c"状态
            onPressed: show_Button_rect.state = "d"  //按下(不是松开)是"d"状态

            onReleased: {  //松开是"c"状态
                show_Button_rect.state = "c"

            }

        }



        states:[  //必须在rectangle里面定义使用
            State {
                name: "a"
                PropertyChanges {
                    target: picture
                    x:-0*show_Button_rect.width

                }
            },

            State {
                name: "b"
                PropertyChanges {
                    target: picture
                    x:-1*show_Button_rect.width

                }
            },

            State {
                name: "c"
                PropertyChanges {
                    target: picture
                    x:-2*show_Button_rect.width

                }
            },

            State {
                name: "d"
                PropertyChanges {
                    target: picture
                    x:-3*show_Button_rect.width

                }
            }
        ]
    }

实现效果:



参考:https://bbs.csdn.net/topics/391833274

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

偕臧x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值