我正在实现一个视图和一个模型,我希望在其中支持在内部移动项目(通过拖动)和复制项目(通过在拖动时按 Ctrl)。我已经按照说明完成了我需要做的所有事情。我已经设置了 mime 函数,我已经实现了 removeRows() 和 flags()。问题是当我拖动时,它默认为复制操作(我得到带有加号的箭头光标,它确实通过在模型中创建一个新项目来复制项目)。
我能看到的唯一区别是:如果我在supportedDropActions() 中只返回Qt::MoveAction,它只会移动。如果我返回 (Qt::CopyAction | Qt::MoveAction),它只会复制。
有任何想法吗?我希望它像 Nautilus (Gnome) 或 Windows 文件资源管理器中的文件一样工作:拖动移动图标,ctrl+drag 复制它们。