使用PyQt实现QTreeWidget拖放重新排序项目

3
我有一个QTreeWidget,我认为已经设置了所有必要的配置,以便能够通过拖动来重新排序项目。有时它可以工作,但更多的情况是,我将一个项目拖到另一个项目中,它要么消失了,要么变成了子项。
有没有办法防止这种情况发生,以便您不会丢失正在尝试重新排序的项目?我想您可以在Qt Designer中实现此目的。我将dragDrop模式设置为InternalMove,将defaultDropAction设置为MoveAction,但我甚至不确定这两个设置是否需要调整。
提前感谢!
1个回答

4
您可以为单个树形小部件项添加标志,以控制拖放行为(以及其他内容)。例如,要防止项目成为投放目标,请尝试以下操作:
item = QTreeWidgetItem(parent)
item.setFlags(items.flags() & ~Qt.ItemIsDropEnabled)

如需更多详情,请参考:Qt.ItemFlags


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接