Я пытаюсь понять, как перемещать / преобразовывать графические элементы внутри QGraphicsScene.
В моем коде я определяю QGraphicView со сценой как QGraphicsScene. Затем я создаю строку "l2" с помощью QLineF. Затем я определяю «l2» как QGraphicsItem «lnk» и определяю pen, isSelectable и isMovable.
Я добавляю его в сцену с помощью «addItem»
После слов Я читаю начальную и конечную точки, манипулирую конечной точкой и хочу, чтобы линия обновлялась в сцене. Здесь я терплю неудачу.
Мой код
self.gvCanvas.setGeometry(QtCore.QRect(20, 10, 501, 501))
self.scene = QtWidgets.QGraphicsScene()
l2 = QtCore.QLineF(100,100,300,70)
penlnk = QtGui.QPen(QtCore.Qt.black,3,QtCore.Qt.SolidLine)
lnk = QGraphicsLineItem(l2)
lnk.setPen(penlnk)
lnk.setFlag(QtWidgets.QGraphicsItem.ItemIsSelectable, True)
lnk.setFlag(QtWidgets.QGraphicsItem.ItemIsMovable, True)
self.scene.addItem(lnk)
pt1 = l2.p1()
pt2 = l2.p2()
xpos = pt2.x()+1500
ypos = pt2.y()
ypos = ypos+500
ptnew=QtCore.QPoint(xpos,ypos)
l2 = QtCore.QLineF(pt1,ptnew)
Я пробовал "setLine (l2)", "scene.update ()" и другие. Ничего не работает.
Я мог бы сначала удалить строку "l2", а затем создать ее новой. Но это точно не правильный путь!?!