我正在尝试启用我已连接到QTreeView
的自定义模型。
我做了以下事情:
QTreeView
supportedDropActions
上实施为return Qt::CopyAction | Qt::MoveAction
mimeType
上实施,以使用text / uri-list返回QStringList
dropMimeData
上实现,以便在发生丢弃时处理丢弃。这就是我需要的所有工作QTreeWidget
。
我继续:
return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDropEnabled;
然而,当我运行我的应用程序并尝试将Windows中的文件拖到我的QTreeView
上时,我只是得到了不允许使用带有斜线的Ghostbusters样式的圆圈。
启用丢弃还需要做什么?
答案 0 :(得分:2)
最后我自己想出了这个。
原来问题是在flags函数中,在无效索引的情况下,我无法返回ItemIsDropEnabled标志。无效索引是根节点的信号,即没有项目的视图区域,因此空白空间不可删除。
这很难被发现,因为我一直在尝试使用drop来添加项目到我的树上,所以没有没有掉线工作,这意味着我所看到的只是带有斜线的圆圈。
答案 1 :(得分:0)
对于那些面临类似问题的人,我想指出有必要在支持的删除操作中返回Qt::CopyAction
。仅Qt::MoveAction
不起作用。