矩形上的 QML 拖动不捕获事件
QML Drag on Rectangle doesn't capture events
我正在尝试完成一个简单的图像拖动,当拖动完成或开始时触发一个事件。
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 not called even though the drag property is active --> 我试过将 Drag.type 放在 Drag.Automatic 上来解决这个问题,但仍然不起作用。
QtQuick 2.6 版
布局 1.3
QML 5.6
我通过向 MouseArea
添加显式 dragActive
属性 解决了这个问题。所以在你的情况下代码将是:
MouseArea {
id: iconMouseArea
drag {
target: upperFooter
axis: Drag.YAxis
}
property bool dragActive: drag.active
onDragActiveChanged: {
if(drag.active) { //
... // Dragging started
} else {
... // Dragging finished
}
}
}
我正在尝试完成一个简单的图像拖动,当拖动完成或开始时触发一个事件。
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 not called even though the drag property is active --> 我试过将 Drag.type 放在 Drag.Automatic 上来解决这个问题,但仍然不起作用。
QtQuick 2.6 版 布局 1.3 QML 5.6
我通过向 MouseArea
添加显式 dragActive
属性 解决了这个问题。所以在你的情况下代码将是:
MouseArea {
id: iconMouseArea
drag {
target: upperFooter
axis: Drag.YAxis
}
property bool dragActive: drag.active
onDragActiveChanged: {
if(drag.active) { //
... // Dragging started
} else {
... // Dragging finished
}
}
}