• 4755阅读
  • 2回复

[提问]关于QTreeWidgetItem拖放操作的冲突 [复制链接]

上一主题 下一主题
离线czlc
 

只看楼主 倒序阅读 楼主  发表于: 2014-04-25

大家好,我遇到一个问题,我自定义了一个QTreeWidget,我想要里面的Item可以像文件夹那样支持拖放改变父子节点,所以
setDefaultDropAction(Qt::MoveAction);
setDragDropMode(QAbstractItemView::DragDrop);
就做到了,但是我还有个需求,就是Item可以拖放到另外一个widget中去,这就需要自定义QMimeData,这样也没问题,可是这2者一起却不知道怎么办了,因为自己new QDrag,默认的拖放改变父子关系的功能就没了,所以现在区别这2者的做法是如果要拖放改变父子的话需要按住Shift键,不过这样操作起来感觉比较麻烦,更直观的操作应该是拖放的时候鼠标离开QTreeWidget就转换为自定义的方式,有没有谁遇到过,请指教,谢谢~
离线kimtaikee

只看该作者 1楼 发表于: 2014-04-25
你看能不能在leaveEvent中处理一下。在widget内部拖拽的数据在leaveEvent中new一个QDrag,然后把数据设置到QDrag中。

离线czlc

只看该作者 2楼 发表于: 2014-04-25
你好,我试过,这样不行,可能dragLeaveEvent是处于QDrag的exec函数,在这里面再创建QDrag可能不行。
快速回复
限100 字节
 
上一个 下一个