这可能是一个非常无知的问题。
我一直在尝试找出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”搜索它。
所以我的问题是:
QGraphicsView
将QGraphicsScene
项添加到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/