使用PyQt中的拖放重新排序QTreeWidget中的项目

时间:2011-10-05 19:44:30

标签: python pyqt drag

我有一个QTreeWidget,我认为所有正确的设置设置,以便能够通过拖动它们来重新排序项目。它有时可以工作,但更多时候我将一个项目拖到另一个项目中它会消失或成为一个孩子。

无论如何都要防止这种情况发生,这样你就不会丢失你想要重新排序的物品吗?我想你可以在Qt Designer中实现这一点。我将 dragDrop 模式设置为InternalMove,将 defaultDropAction 设置为MoveAction,但我甚至不确定这两个是否需要调整。

提前致谢!

1 个答案:

答案 0 :(得分:2)

您可以为控制拖放行为(以及其他内容)的各个树窗口小部件项添加标记。例如,要防止项目成为放置目标,请尝试以下操作:

item = QTreeWidgetItem(parent)
item.setFlags(items.flags() & ~Qt.ItemIsDropEnabled)

有关详细信息,请参阅qt文档:http://doc.qt.nokia.com/4.7/qt.html#ItemFlag-enum