在下面的示例中,我希望在拖动一个矩形时调用onDragStarted
/ onDragFinished
。但是,仅drag.onActiveChanged
(mouseArea的)和Drag.onActiveChanged
(矩形的)被调用。设置为时Drag.dragType
,我得到了预期的输出,Drag.Automatic
但是我再也看不到矩形了。我在Mac(El Capitan)上使用Qt 5.5。
import QtQuick 2.5 import QtQuick.Window 2.2 Window { visible: true width: 100 height: 200 ListModel { id: testModel ListElement { name: "red"; value: "#f00" } ListElement { name: "green"; value: "#0f0" } ListElement { name: "blue"; value: "#00f" } } Component { id: rect Rectangle { Drag.active: mouseArea.drag.active Drag.hotSpot.x: width / 2 Drag.hotSpot.y: height / 2 //Drag.dragType: Drag.Automatic Drag.onActiveChanged: { console.log("Active changed..") } Drag.onDragStarted: { console.log("Drag started..") } Drag.onDragFinished: { console.log("Drag finished!") } MouseArea { id: mouseArea anchors.fill: parent hoverEnabled: true drag.target: parent drag.onActiveChanged: { console.log("Drag prop became active..") } onClicked: { colorButtonClicked(buttonName, buttonColor); } } width: 80 height: 20 radius: 6 color: model.value } } Column { spacing: 3 anchors.centerIn: parent Repeater { model: testModel delegate: rect } } }
Kim.. 5
根据信号名称的假设,我对相同的问题感到困惑,但查看文档显示,信号仅在使用Drag.Automatic
或显式调用时才有效startDrag
。
dragStarted()
当使用startDrag()方法启动拖动或使用dragType属性自动启动拖动时,将发出此信号。
dragFinished(DropAction操作)
当拖动完成并且使用startDrag()方法启动拖动或使用dragType属性自动启动拖动时,将发出此信号。
使用时看到的另一个问题Drag.Automatic
似乎在Qt 5.6.1中已修复
根据信号名称的假设,我对相同的问题感到困惑,但查看文档显示,信号仅在使用Drag.Automatic
或显式调用时才有效startDrag
。
dragStarted()
当使用startDrag()方法启动拖动或使用dragType属性自动启动拖动时,将发出此信号。
dragFinished(DropAction操作)
当拖动完成并且使用startDrag()方法启动拖动或使用dragType属性自动启动拖动时,将发出此信号。
使用时看到的另一个问题Drag.Automatic
似乎在Qt 5.6.1中已修复