Qt,QML的DropArea的通常使用


 

DraggableItem.qml

// DraggableItem.qml
import QtQuick 2.15
import QtGraphicalEffects 1.13

Item {
    id: dropItem
    width: 50
    height: 50
    property string videoPath: ""
    property alias imageSource: itemImage.source
    Image {
        id: itemImage
        anchors.centerIn: parent
        width: parent.width
        height: parent.height
        source: ""
        layer.enabled: true
        layer.effect: OpacityMask {
            maskSource: Rectangle {
                width: itemImage.width
                height: itemImage.height
                color: "white"
                radius: itemImage.width * 0.2
            }
        }
    }
    MouseArea{
        id: mouseArea
        enabled: true
        propagateComposedEvents: true
        acceptedButtons: Qt.LeftButton
        anchors.fill: parent
        drag.target: actualMovingElement

        onClicked: {
            actualMovingElement.visible = false;

        }
        onPressed: {
            actualMovingElement.visible = false
            console.log("我按下了Pressed")
        }
        onReleased: {
            actualMovingElement.visible = false
            actualMovingElement.Drag.drop()
            actualMovingElement.x = 0;
            actualMovingElement.y = 0;
            console.log("我释放了Released")
        }
        onPositionChanged: {
            if(mouseArea.pressed)
            {
                // 如果正在被拖动
                if(mouseArea.drag.active)
                {
                    // 实时变动位置以保持正中心
                    var current = mapToItem(rootItem,mouseX,mouseY)
                    actualMovingElement.x = current.x - actualMovingElement.width/2
                    actualMovingElement.y = current.y - actual
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值