丢弃时丢弃项的 QML 更改大小

时间:2021-04-30 07:11:48

标签: drag-and-drop qml resize

我想将 QML 拖放示例中的 Rectangle 大小更改为放置区域的大小。但不知何故,尽管矩形采用宽度和高度值,但它不会呈现为新尺寸。

DragTile.qml

import QtQuick 2.0

Item
{
    id: rootItem
    property int boxWidth: 0
    property int boxHeight: 0
    property Item dragParent    

    width: boxWidth
    height: boxHeight   

    MouseArea
    {        
        id: mouseArea
        width: rootItem.boxWidth
        height: rootItem.boxHeight

        drag.target: msgTile

        onReleased:
        {
            parent = msgTile.Drag.target !== null ? msgTile.Drag.target : rootItem
            rootItem.boxHeight = parent.boxHeight
            rootItem.boxWidth = parent.boxWidth             
        }

        Rectangle
        {            
            id: msgTile

            color: "cyan"

            width: mouseArea.width
            height: mouseArea.height
          
            anchors.verticalCenter: parent.verticalCenter
            anchors.horizontalCenter: parent.horizontalCenter

            Drag.active: mouseArea.drag.active
            Drag.hotSpot.x: width / 2
            Drag.hotSpot.y: height / 2


            //draging
            states: State
            {
                when: mouseArea.drag.active
                ParentChange { target: msgTile; parent: dragParent } // draw on top while draging
                AnchorChanges { target: msgTile; anchors.verticalCenter: undefined; anchors.horizontalCenter: undefined }
            }
        }

    }
}

dragsource 和 droparea 都采用父矩形的大小

在 Main.qml 中

    Rectangle
    {
        x: 100
        y: 100

        width: 100
        height: 300

        border.width: 1

        DragSource
        {
            msgCount: 2
            msgCapacity: 10
            dragParent: topItem
        }

    }

    Rectangle
    {
        x: 400
        y: 100

        width: 150
        height: 300

        border.width: 1

        MsgDrop
        {
            msgCapacity: 12
        }
    }

droparea的大小比dragtiles的大小要大一点

是否有任何我遗漏的渲染顺序? 我很乐意为您提供一些建议。

最好的问候

0 个答案:

没有答案
相关问题