我正在尝试完成一个简单的图像拖动,当拖动完成或开始时触发一个事件。
Rectangle {
id: upperFooter
color: "transparent"
Layout.alignment: Qt.AlignLeft | Qt.AlignBottom
Drag.onDragFinished: onDragFinished()
Drag.dragType: Drag.Automatic
width: 800
height: 40
Image {
height: 40
width: upperFooter.width
source: "qrc:///images/footer/background_footer.svg"
MouseArea {
id: iconMouseArea
x: 390
y: 10
anchors.fill: parent
onClicked: toggleHiddenBar()
drag {
target: upperFooter
axis: Drag.YAxis
}
}
}
upperFooter项目上的事件不会触发。
QML:即使拖动属性处于活动状态,也未调用 onDragStarted/finished --> 我尝试将 Drag.type 放在 Drag.Automatic 上以解决此问题,但仍然无效。
QtQuick v 2.6 布局 1.3 QML 5.6
我加入明确的解决了这个问题dragActive
性质的MouseArea
。所以在你的情况下,代码将是:
MouseArea {
id: iconMouseArea
drag {
target: upperFooter
axis: Drag.YAxis
}
property bool dragActive: drag.active
onDragActiveChanged: {
if(drag.active) { //
... // Dragging started
} else {
... // Dragging finished
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句