当用户选择QGraphicsItems
时,我希望能够跟踪它们的选择顺序。现在我正在使用QGraphicsScene.selectedItems()
,但它没有告诉我最后选择的对象是什么。
在查看selectedItems()
的文档后,这似乎很清楚:
https://srinikom.github.io/pyside-docs/PySide/QtGui/QGraphicsScene.html#PySide.QtGui.PySide.QtGui.QGraphicsScene.selectedItems
返回所有当前所选项目的列表。这些物品被退回 没有特别的顺序。
这是我需要跟踪自己的事情,还是我错过了另一种方法来做到这一点?
谢谢!
更新
这似乎有效,但可能不是最优雅的方法,尤其是有很多项目。如果我能改进它,请告诉我!
def selectionChanged(self):
if self.scene().selectedItems():
# Remove any item that was de-selected
for i in range(len(self.sortedItems)-1, -1, -1):
if not self.sortedItems[i].isSelected():
self.sortedItems.pop(i)
# Add new items
for item in self.scene().selectedItems():
if item not in self.sortedItems:
self.sortedItems.append(item)
else:
del self.sortedItems[:]