在QGraphicsView中钩住鼠标点击可以通过以下步骤实现:
以下是一个示例代码:
from PyQt5.QtWidgets import QGraphicsView, QGraphicsScene
from PyQt5.QtCore import Qt
class CustomGraphicsView(QGraphicsView):
def __init__(self, scene):
super().__init__(scene)
def mousePressEvent(self, event):
pos = event.pos()
scene_pos = self.mapToScene(pos)
item = self.scene().itemAt(scene_pos, self.transform())
if item is not None:
# 执行相应的操作
item.setBrush(Qt.red)
super().mousePressEvent(event)
在上述示例中,我们创建了一个自定义的GraphicsView类,并重写了mousePressEvent()方法。在该方法中,我们获取了鼠标点击的坐标位置,并将其转换为场景坐标。然后使用itemAt()方法获取点击位置下的图形项,并对其进行了一些操作。
请注意,这只是一个简单的示例,实际应用中可能需要根据具体需求进行更复杂的操作。关于QGraphicsView和相关类的更多详细信息,可以参考腾讯云的官方文档:QGraphicsView类文档。
领取专属 10元无门槛券
手把手带您无忧上云