Я пытаюсь реализовать базовое drag n 'drop в QML. Функционально это работает - я могу перетащить строку вокруг. Тем не менее, я не могу заставить свой draggable Rectangle объект следовать курсору. Он устанавливает x и y Rectangle правильно, что он становится видимым, но затем он остается неподвижным, а не перемещается мышью. Вот мой код:Перетаскиваемые элементы, не работающие в QML
MouseArea {
id: mouseArea
anchors.fill: parent
drag.target: draggable
}
Rectangle {
id: draggable
height: 18
width: dragText.width + 8
clip: true
color: "#ff333333"
border.width: 2
border.color: "#ffaaaaaa"
visible: false
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
Drag.active: mouseArea.drag.active
Drag.hotSpot.x: 0
Drag.hotSpot.y: 0
Drag.mimeData: { "text/plain": "Teststring" }
Drag.dragType: Drag.Automatic
Drag.onDragStarted: {
visible = true
}
Drag.onDragFinished: {
visible = false
}
Text {
id: dragText
x: 4
text: "Teststring"
font.weight: Font.Bold
color: "#ffffffff"
horizontalAlignment: Text.AlignHCenter
}
}
Что вы собираетесь делать здесь? Вы пытаетесь перетащить элемент с помощью 'visible: false'? – folibis
Нет, я установил элемент на видимый, как только начнется перетаскивание (см. Drag.onDragStarted). – user1765354
Какой смысл перетаскивать невидимый элемент? Какова ваша цель? Возможно, это можно было бы сделать по-другому. – folibis