【发布时间】:2021-10-09 21:02:53
【问题描述】:
我有一个图形场景和 2 类线和端点,但是当我移动线的端点时出现问题。当我移动线时,端点会移动,但是当移动端点时,它们只会脱离线,即使我将其设为父级。我希望它双向工作,所以当端点移动时,线会移动到它,所以它可以改变长度和坡度。
class Lineitem(QGraphicsLineItem):
def __init__(self):
super().__init__()
self.setLine(0, 0, 500, 0)
self.setPen(QPen(QColor(0, 0, 0), 5 ))
self.setFlag(self.ItemIsMovable)
self.setFlag(self.ItemIsSelectable)
self.endpoints = []
for i in range(2):
endpoint = Endpoint(self)
endpoint.setParentItem(self)
self.endpoints.append(endpoint)
self.endpoints[0].setPos(-5, -5)
self.endpoints[1].setPos(495, -5)
class Endpoint(QGraphicsEllipseItem):
def __init__(self, parent):
super().__init__(parent)
self.setRect(0, 0, 10, 10 )
self.setBrush(QColor(0, 0, 255))
self.setFlag(self.ItemIsMovable)
self.setFlag(self.ItemIsSelectable)
这里是主窗口:
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.gscene = QGraphicsScene(0, 0, 1000, 1000)
self.line = Lineitem()
self.line.setPos(300, 300)
self.gview = QGraphicsView(self.gscene)
self.gscene.addItem(self.line)
self.setCentralWidget(self.gview)
【问题讨论】:
-
请始终通过检查帖子预览中的语法和缩进来确保您是正确的formatting code。
-
抱歉,感谢您修复它。下次我会学习做得更好。
标签: python pyqt5 qgraphicsscene