gpt4 book ai didi

python-3.x - PyQt/PySide 如何在将 QGraphicsItem 添加到 QGraphicsScene 后访问/移动它

转载 作者:行者123 更新时间:2023-12-02 01:53:26 25 4
gpt4 key购买 nike

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

我一直在尝试弄清楚 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 的程序的相关部分

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

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

   pics = self.scene.items()
for i in pics:
i.setPos(100,100)

但是,这并没有什么区别,即使有区别,不得不用“for in”来搜索它也很尴尬。

所以我的问题是:

  1. 通过 QGraphicsSceneQPixmap 项添加到 QGraphicsView 后,如何访问它。 (我相信QPixmap此时是一个QGraphicsItem,或者更准确地说是一个QGraphicsPixmapItem。)

  2. 访问后,如何移动它或更改它的任何其他属性。

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

最佳答案

问题是你需要设置场景的大小,然后设置项目的位置,检查这个例子:

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 后访问/移动它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21531620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com