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

我一直在尝试找出QGraphics*,并且在尝试相对QGraphicsView或在QGraphicsView内移动项目(像素图)时遇到问题。

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



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

我尝试将其附加到上面的代码:
   pics = self.scene.items()
    for i in pics:
        i.setPos(100,100)

但是,它没有什么区别,即使这样做也很麻烦,必须使用“for in”搜索它。

所以我的问题是:
  • 通过QGraphicsViewQGraphicsScene项添加到QPixmap后,如何访问它。 (我相信QGraphicsItem在这一点上是QGraphicsPixmapItem,或更确切地说是ojit_code。)
  • 访问后,如何移动它或更改其任何其他属性。

  • 非常感谢您的帮助,或者任何人都有与该问题相关的教程的良好链接。 :)

    最佳答案

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

    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_()
    

    关于python-3.x - PyQt/PySide将QGraphicsItem添加到QGraphicsScene后如何访问/移动QGraphicsItem,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21531620/

    10-11 06:46