我使用QtQuick's Drag and Drop example(Tiles部分)将列表中的切片(代表按钮)拖放到网格上,作为动态布局这些按钮的方法。
"删除" (即重新表示)列表中的图块,留下空白空间。我希望列表能够自动重组以缩小这一差距。是否可以使用示例中的方法,通过重新显示图块来完成拖放操作?或者我需要有两个模型(一个用于列表,一个用于网格)并在两个模型之间添加/删除拖动的项目?
感谢您的帮助!
见图片
更好地了解我的意思。
答案 0 :(得分:1)
之所以会发生这种情况,是因为在示例中他们只是对磁贴的子级应用父级更改,因此空根Item
仍保留在列中:
// DragTile.qml
Item {
id: root
// ...
MouseArea {
// ...
drag.target: tile
onReleased: parent = tile.Drag.target !== null ? tile.Drag.target : root
Rectangle {
id: tile
// ...
}
}
}
如果您将父更改应用于根Item
,Column
将自动重组:
onReleased: {
if (tile.Drag.target) {
root.parent = tile.Drag.target
root.anchors.centerIn = root.parent
}
}