def startDrag(self, event): item = self.itemAt(event.scenePos(), self.page_view_transform) if item is None: event.ignore() return self.item_being_dragged = item.parent self.remove_component_controller(item.parent) hotspot = event.scenePos() - item.scenePos() hot_spot_point = hotspot.toPoint() hot_spot_point = self.page_view_transform.map(hot_spot_point) item_data = QByteArray() data_stream = QDataStream(item_data, QIODevice.WriteOnly) data_stream << hot_spot_point # pixmap << location mime_data = QMimeData() mime_data.setData(config_controller.component_mime, item_data) drag = QDrag(self) drag.setMimeData(mime_data) horizontal_scaling = self.page_view_transform.m11() logger.info(f"sceneBoundingRect {item.sceneBoundingRect().width()}") logger.info( f"sceneBoundingRect {item.sceneBoundingRect().width()*horizontal_scaling}" ) drag.setPixmap( item.parent.pixmap.scaledToWidth(item.sceneBoundingRect().width() * horizontal_scaling)) drag.setHotSpot(hot_spot_point) result = drag.start(QtCore.Qt.MoveAction) if result: # == QtCore.Qt.MoveAction: pass
def startDrag(self, event: QEvent) -> None: item = self.currentItem() if item is None: event.ignore() return self.item_being_dragged = self.takeItem(self.row(item)).parent hot_spot_point = event.pos() item_data = QByteArray() data_stream = QDataStream(item_data, QIODevice.WriteOnly) data_stream << hot_spot_point # pixmap << location mime_data = QMimeData() mime_data.setData(config_controller.component_mime, item_data) drag = QDrag(self) pixmap = item.parent.pixmap.scaledToWidth(64) drag.setHotSpot(QPoint(pixmap.width() / 2, pixmap.height() / 2)) drag.setPixmap(pixmap) drag.setMimeData(mime_data) result = drag.start(QtCore.Qt.MoveAction) if result: # == QtCore.Qt.MoveAction: pass
def mouseMoveEvent(self, e): if e.buttons() != Qt.RightButton: return mimeData = QMimeData drag = QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(e.pos() - self.rect().topLeft()) dropAction = drag.start(Qt.MoveAction)
def mouseMoveEvent(self, event): # we should have only a single item selected item = self.selectedItems() if len(item) != 1: return item = item[0] # item should not have a parent (should not be a value) if item.parent() is None: drag = QDrag(self) mime = QtCore.QMimeData() text = item.text(0) if text[0]=='.': text = "s['{}']{}".format(self.nodename, text) mime.setText(text) drag.setMimeData(mime) drag.start(QtCore.Qt.MoveAction)
def mouseMoveEvent(self, event): if event.buttons() != Qt.LeftButton: return if (event.pos() - self._dragStartPosition ).manhattanLength() < QApplication.startDragDistance(): return pixmap = QPixmap(23, 23) pixmap.fill(self._color_srgb) drag = QDrag(self) mime_data = QMimeData() text = encode_index(self.parentWidget().index) mime_data.setText(text) drag.setMimeData(mime_data) drag.setPixmap(pixmap) drop_action = drag.start(Qt.CopyAction) # | Qt.MoveAction)