gpt4 book ai didi

Qt自定义模型需要做什么才能启用drop?

转载 作者:行者123 更新时间:2023-12-04 13:06:09 28 4
gpt4 key购买 nike

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

我做了以下工作:

  • 确保在 QTreeView 上启用了 acceptDrops
  • 在我的自定义模型上实现 supportedDropActionsreturn Qt::CopyAction | Qt::MoveAction
  • 在我的自定义模型上实现 mimeType s 返回 QStringList带有文本/uri 列表
  • 在我的自定义模型上实现 dropMimeData处理下降,如果它曾经发生过。

  • 这就是我让它在 QTreeWidget 上工作所需的全部内容.

    我继续:
  • 实现标志到 return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDropEnabled;

  • 尽管如此,当我运行我的应用程序并尝试将 Windows 中的文件拖到我的 QTreeView 上时,我只是得到那个不允许用斜线穿过它的捉鬼敢死队风格的圆圈。

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

    最佳答案

    终于自己弄明白了这个。

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

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

    关于Qt自定义模型需要做什么才能启用drop?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7355510/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com