Python 使用PyQt中的拖放功能重新排序QTreeWidget中的项目
我有一个QTreeWidget,其中包含我认为所有正确的设置,以便能够通过拖动项目来重新排序项目。它有时可以工作,但我经常会将一个项目拖到另一个项目中,它要么消失,要么变成子项目 有没有办法防止这种情况发生,这样你就不会丢失要重新订购的物品?我认为您可以在Qt Designer中实现这一点。我将dragDrop模式设置为InternalMove,将defaultDropAction设置为MoveAction,但我甚至不确定这两种模式是否都是我需要调整的Python 使用PyQt中的拖放功能重新排序QTreeWidget中的项目,python,pyqt,drag-and-drop,qtreewidget,Python,Pyqt,Drag And Drop,Qtreewidget,我有一个QTreeWidget,其中包含我认为所有正确的设置,以便能够通过拖动项目来重新排序项目。它有时可以工作,但我经常会将一个项目拖到另一个项目中,它要么消失,要么变成子项目 有没有办法防止这种情况发生,这样你就不会丢失要重新订购的物品?我认为您可以在Qt Designer中实现这一点。我将dragDrop模式设置为InternalMove,将defaultDropAction设置为MoveAction,但我甚至不确定这两种模式是否都是我需要调整的 提前谢谢 您可以将标志添加到控制拖放行为(
提前谢谢 您可以将标志添加到控制拖放行为(以及其他内容)的单个树小部件项中。例如,要防止某个项目成为放置目标,请尝试以下操作:
item = QTreeWidgetItem(parent)
item.setFlags(items.flags() & ~Qt.ItemIsDropEnabled)
有关详细信息,请参阅: