在PyQt中使用拖放重新排序QTreeWidget中的项目
我有一个QTreeWidget,设置了我认为所有正确的选项,以便可以通过拖动来重新排序项目。这个功能有时能用,但更多时候我拖动一个项目到另一个项目上,它要么消失了,要么变成了子项目。
有没有办法防止这种情况发生,这样就不会丢失你想重新排序的项目呢?我想这个可以在Qt Designer里实现。我把dragDrop模式设置为InternalMove,把defaultDropAction设置为MoveAction,但我不确定这两个设置是否是我需要调整的。
提前谢谢你!
1 个回答
4
你可以给树形控件中的每个项目添加一些标志,这些标志可以控制拖放的行为(还有其他一些功能)。比如,如果你想让某个项目不能被拖放到上面,可以试试下面的代码:
item = QTreeWidgetItem(parent)
item.setFlags(items.flags() & ~Qt.ItemIsDropEnabled)
想了解更多细节,可以查看这个链接: Qt.ItemFlags