C++ 在qml树视图中移动项目
我通过setContextProperty将QtQuickTreeView连接到我的QAbstractItemModel,它运行良好。 现在,我希望能够通过上下拖动项目来更改项目的顺序(在视图和模型中)。我已经创建了DropAreaC++ 在qml树视图中移动项目,c++,qt,treeview,qml,qtquick2,C++,Qt,Treeview,Qml,Qtquick2,我通过setContextProperty将QtQuickTreeView连接到我的QAbstractItemModel,它运行良好。 现在,我希望能够通过上下拖动项目来更改项目的顺序(在视图和模型中)。我已经创建了DropArea DropArea { anchors { fill: parent; margins: 10 } onEntered: { // ??? } } 但我不确定如何在qml中实现迁移。在qwidg
DropArea {
anchors { fill: parent; margins: 10 }
onEntered: {
// ???
}
}
但我不确定如何在qml中实现迁移。在qwidget方法中,它由removeRows/insertRows处理。qt quick的正确方法是什么 正确的方法是使用模型并移动项目,或者将项目移除/插入到新位置。由于这些函数没有直接公开给QML,所以您必须通过包装器槽公开它们,例如在您的模型中
当您修改源模型时,视图将自动调整以反映更改。如何获得上一个和新的位置?@Amplier-您可以使用视图的
QModelIndex索引(int x,int y)
模型,分别用于拖动源和拖放目标。“索引”是获取“从”和“到”索引的唯一方法吗?