QGraphicsScene选择顺序

时间:2015-09-01 05:35:41

标签: python pyside qgraphicsitem qgraphicsscene

当用户选择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[:]

0 个答案:

没有答案