Python 3.x PyQt/PySide如何在将QGraphicsCenter添加到QGraphicsCenter后访问/移动QGraphicsItem

Python 3.x PyQt/PySide如何在将QGraphicsCenter添加到QGraphicsCenter后访问/移动QGraphicsItem,python-3.x,pyside,qgraphicsview,qgraphicsitem,qgraphicsscene,Python 3.x,Pyside,Qgraphicsview,Qgraphicsitem,Qgraphicsscene,这可能是一个非常无知的问题 我一直在试图弄清楚QGraphics*,但在尝试相对于QGraphicsView移动项目(pixmap)时遇到了问题 class MainWindow(QMainWindow,myProgram.Ui_MainWindow): def __init__(self): super().__init__() self.setupUi(self) self.scene = QGraphicsScene()

这可能是一个非常无知的问题

我一直在试图弄清楚
QGraphics*
,但在尝试相对于
QGraphicsView
移动项目(pixmap)时遇到了问题

class MainWindow(QMainWindow,myProgram.Ui_MainWindow):

    def __init__(self):
        super().__init__()
        self.setupUi(self)

        self.scene = QGraphicsScene()
        self.graphicsView.setScene(self.scene)

        pic = QPixmap('myPic.png')

        self.scene.addPixmap(pic)

        print(self.scene.items())  
这是程序的相关部分,带有任意PNG

例如,我的目标是将垃圾桶移到
QGraphicsView
的最左侧

我尝试将其附加到上面的代码中:

   pics = self.scene.items()
    for i in pics:
        i.setPos(100,100)
然而,这并没有什么不同,即使有,用“for in”搜索也会很尴尬

因此,我的问题是:

  • QPixmap
    项目添加到
    QGraphicsView
    后,如何通过
    qgraphicscene
    访问该项目。(我相信
    QPixmap
    在这一点上是一个
    QGraphicsItem
    ,或者更准确地说是一个
    QGraphicsPixmapItem

  • 一旦被访问,我如何移动它,或更改它的任何其他属性


  • 非常感谢您的帮助,或者如果任何人有与问题相关的教程的良好链接,我们将不胜感激。:)

    问题是您需要设置场景的大小,然后设置项目的位置,请检查以下示例:

    from PyQt4 import QtGui as gui
    
    app = gui.QApplication([])
    
    pm = gui.QPixmap("icon.png")
    
    scene = gui.QGraphicsScene()
    scene.setSceneRect(0, 0, 200, 100) #set the size of the scene
    
    view = gui.QGraphicsView()
    view.setScene(scene)
    
    item1 = scene.addPixmap(pm) #you get a reference of the item just added
    item1.setPos(0,100-item1.boundingRect().height()) #now sets the position
    
    view.show()
    app.exec_()
    

    这很有道理!非常感谢。你知道最糟糕的是,我花了20分钟左右的时间编写了一段代码来演示这个问题,所以我可以在这里问一个非常类似的问题,因为我遇到了同样的问题,但却发现这个问题解决了。所以我要删除我写的所有代码。谢谢你的解决方案!!!