def mouseDoubleClickEvent( self, event: QtWidgets.QGraphicsSceneMouseEvent) -> None: """Intercept events and pass to overlay.""" view_pos = event.widget().mapFromGlobal(event.screenPos()) for item in self.overlayitems: if item.contains(view_pos, event.widget().rect()): item.item.mouseDoubleClickEvent(event)
def mousePressEvent(self, event: QGraphicsSceneMouseEvent): movingItem = self.itemAt(event.scenePos(), self.view.transform()) if movingItem is None and event.button() is Qt.MouseButton.RightButton: self.popMenu.exec_(event.screenPos()) if movingItem is not None and event.button( ) is Qt.MouseButton.LeftButton: self.oldPos = movingItem.pos() self.clearSelection() super(Scene, self).mousePressEvent(event)
def mousePressEvent(self, event: QGraphicsSceneMouseEvent): if self.isEnabled(): self.setZValue(1) if event.button() is Qt.MouseButton.LeftButton: pass # self.posmouseinItem = event.scenePos() - self.pos() # items = self.scene().selectedItems() # if self not in items: # self.scene().clearSelection() # if self.DialogVar is not None: # self.DialogVar.close() if event.button() is Qt.MouseButton.RightButton: self.popMenu.exec_(event.screenPos())
def mouseMoveEvent(self, event: QGraphicsSceneMouseEvent): if (QLineF(event.screenPos(), event.buttonDownScreenPos( Qt.LeftButton)).length() < QApplication.startDragDistance()): return self.parentItem().edgeDragStart() package = QMimeData() package.setData(self.DragMimeType, bytes()) drag = QDrag(event.widget()) drag.setMimeData(package) drag.exec_() self.parentItem().edgeDragStop()