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分钟左右的时间编写了一段代码来演示这个问题,所以我可以在这里问一个非常类似的问题,因为我遇到了同样的问题,但却发现这个问题解决了。所以我要删除我写的所有代码。谢谢你的解决方案!!!