4

我正在尝试在我连接到的自定义模型上启用 drop QTreeView

我做了以下事情:

  • 确保在QTreeView
  • 在我的自定义模型supportedDropActions上实现return Qt::CopyAction | Qt::MoveAction
  • 在我的自定义模型上实现mimeType以返回QStringList带有 text/uri-list 的
  • 在我的自定义模型上实施dropMimeData以处理掉落(如果发生)。

这就是我让它在QTreeWidget.

我继续:

  • 实现的标志return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDropEnabled;

然而,当我运行我的应用程序并尝试将 Windows 中的文件拖到我QTreeView的 .

我还需要做什么才能启用 Drop?

4

2 回答 2

3

终于自己搞定了这个。

原来问题是在标志函数中,在无效索引的情况下,我未能返回 ItemIsDropEnabled 标志。无效索引是根节点的信号,即没有项目的视图区域,因此空白空间不可丢弃。

这很难检测到,因为我一直在尝试使用 drop 将项目添加到我的树中,所以没有 drop 工作,这意味着我看到的只是带有斜线的圆圈。

于 2011-09-09T02:37:46.550 回答
0

对于那些面临类似问题的人,我想指出,有必要Qt::CopyAction在支持的 drop 动作中返回。Qt::MoveAction单独是行不通的。

于 2011-09-16T17:10:04.767 回答