从QAbstractItemModel子类化时支持拖放

Drag and drop support when subclassing from QAbstractItemModel

本文关键字:支持 拖放 QAbstractItemModel 子类      更新时间:2023-10-16

我从QAbstractItemModel子类化,把模型放入QTreeView,一切正常

现在我想支持拖放,这样就可以用鼠标改变项目的位置。
我将QTreeView设置为dragDrop模式为DragDrop, defDropAction MoveAction, drag enabled为true。我可以拖动项目,它会出现在鼠标附近,但在放置时什么也没有发生。

我需要QAbstractItemModel中的哪些方法来实现我的模型将支持拖放?

需要实现QAbstractItemModel::supportedDropActions()和QAbstractItemModel::supportedDragActions()。文档也解释得很好。

这个链接的海报有一些示例代码:http://forum.qt.io/topic/9417/solved-supporteddropactions-in-qabstractitemmodel