在 PyQt 中使用拖放重新排序 QTreeWidget 中的项目
Posted
技术标签:
【中文标题】在 PyQt 中使用拖放重新排序 QTreeWidget 中的项目【英文标题】:Reordering items in a QTreeWidget with Drag and Drop in PyQt 【发布时间】:2011-10-05 19:44:30 【问题描述】:我有一个 QTreeWidget,其中包含我认为所有正确设置的设置,以便能够通过拖动项目来重新排序项目。它有时可以工作,但通常我将一个项目拖到另一个项目中,它要么消失,要么变成一个孩子。
有没有办法防止这种情况发生,以免丢失您尝试重新订购的物品?我想你可以在 Qt Designer 中实现这一点。我将 dragDrop 模式设置为 InternalMove 并将 defaultDropAction 设置为 MoveAction,但我什至不确定这两个是否是我需要调整的。
提前致谢!
【问题讨论】:
【参考方案1】:您可以将标志添加到控制拖放行为(以及其他内容)的单个树小部件项目。例如,要防止某个项目成为放置目标,请尝试以下操作:
item = QTreeWidgetItem(parent)
item.setFlags(items.flags() & ~Qt.ItemIsDropEnabled)
更多详情请见:Qt.ItemFlags
【讨论】:
以上是关于在 PyQt 中使用拖放重新排序 QTreeWidget 中的项目的主要内容,如果未能解决你的问题,请参考以下文章
PyQt QListView 拖放问题,用于在一个列表中导入和重新排列