在 qml 树视图中移动项目

Moving items in qml treeview

我通过 setContextProperty 将 Qt Quick treeview 连接到我的 QAbstractItemModel,并且效果很好。 现在我希望能够通过上下拖动来更改项目(在视图和模型中)的顺序。我创建了 DropArea

DropArea {
        anchors { fill: parent; margins: 10 }

        onEntered: {
           // ???
        }
}

但我不确定如何在 qml 中实现移动。在 qwidget 方法中,它由 removeRows/insertRows 处理。 qt quick 中正确的方法是什么?

正确的方法是使用模型并移动项目,或者 remove/insert 将它们移动到新位置。由于这些函数未直接暴露给 QML,因此您必须通过包装器槽暴露它们,例如在您的模型中。

修改源模型时,视图会自动调整以反映更改。