def mouseMoveEvent(self, event): if not (event.buttons() & Qt.LeftButton): return if (event.pos() - self.drag_start_position).manhattanLength() < 2: global correction correction = event.pos() - self.drag_start_position drag = QDrag(self) mimedata = QMimeData() mimedata.setImageData(self.pixmap().toImage()) # изображение в качестве данных, которое потом можно будет дропнуть drag.setMimeData(mimedata) #t = QTransform().rotate(ui.angle) pixmap = QPixmap(drag.mimeData().imageData()) # POGU pixmap = pixmap.scaled(self.size()) painter = QPainter(pixmap) self.setWindowFlags(QtCore.Qt.FramelessWindowHint) self.setAttribute(QtCore.Qt.WA_TranslucentBackground) self.setStyleSheet("background:transparent;") painter.drawPixmap(self.rect(), self.grab()) painter.end() drag.setPixmap(pixmap) drag.setHotSpot(event.pos() - self.rect().topLeft()) drag.exec_(Qt.CopyAction | Qt.MoveAction)
def mouseMoveEvent(self, event): # перетягивание на левую кнопку мыши + установка минимальной длины для начала перетягивания (4 пикселя) if not (event.buttons() & Qt.LeftButton): return if (event.pos() - self.drag_start_position).manhattanLength() < 2: global correction correction = event.pos() - self.drag_start_position drag = QDrag(self) # QMimeData() - класс для хранения данных любого типа во время перетягивания mimedata = QMimeData() mimedata.setImageData(self.pixmap().toImage()) # изображение в качестве данных, которое потом можно будет дропнуть drag.setMimeData(mimedata) t = QTransform().rotate(ui.angle) pixmap = QPixmap(ui.image_raw_main.transformed(t)) #Все исправление в 3 строчки pixmap = pixmap.scaled(self.size()) painter = QPainter(pixmap) self.setWindowFlags(QtCore.Qt.FramelessWindowHint) self.setAttribute(QtCore.Qt.WA_TranslucentBackground) self.setStyleSheet("background:transparent;") painter.drawPixmap(self.rect(), self.grab()) painter.end() drag.setPixmap(pixmap) #именно здесь происходит прорисовка изображения, работает и без QPainter, но #Но он помогает восстановить качество картинки, по сути перерисовывая новую картинку поверх старой, #повреждено из за метода scaled. Картинка из этой строчки по сути является фоном, и именно в ней и была проблема drag.setHotSpot(event.pos() - self.rect().topLeft()) drag.exec_(Qt.CopyAction | Qt.MoveAction)
def mouseMoveEvent(self, event: QMouseEvent) -> None: if event.buttons() == Qt.LeftButton: mimeData = QMimeData() mimeData.setText(str(self.idx)) drag = QDrag(self) drag.setMimeData(mimeData) drag.exec_(Qt.MoveAction)
def mouseMoveEvent(self, event): """ Protected method to handle mouse move events. @param event reference to the mouse move event (QMouseEvent) """ if event.buttons() == Qt.MouseButtons(Qt.LeftButton) and \ (event.pos() - self.__dragStartPos).manhattanLength() > \ QApplication.startDragDistance(): drag = QDrag(self) mimeData = QMimeData() index = self.tabAt(event.pos()) mimeData.setText(self.tabText(index)) mimeData.setData("action", b"tab-reordering") mimeData.setData("tabbar-id", str(id(self)).encode("utf-8")) mimeData.setData( "source-index", QByteArray.number(self.tabAt(self.__dragStartPos))) mimeData.setData("tabwidget-id", str(id(self.parentWidget())).encode("utf-8")) drag.setMimeData(mimeData) if event.modifiers() == Qt.KeyboardModifiers(Qt.ShiftModifier): drag.exec_(Qt.DropActions(Qt.CopyAction)) elif event.modifiers() == Qt.KeyboardModifiers(Qt.NoModifier): drag.exec_(Qt.DropActions(Qt.MoveAction)) super(TabBar, self).mouseMoveEvent(event)
def __onDragStarted(self, index): desc = qunwrap(index.data(QtWidgetRegistry.WIDGET_DESC_ROLE)) icon = qunwrap(index.data(Qt.DecorationRole)) drag_data = QMimeData() drag_data.setData( "application/vnv.orange-canvas.registry.qualified-name", desc.qualified_name) drag = QDrag(self) drag.setPixmap(icon.pixmap(38)) drag.setMimeData(drag_data) # TODO: Should animate (accept) hide. self.hide() # When a drag is started and the menu hidden the item's tool tip # can still show for a short time UNDER the cursor preventing a # drop. viewport = self.__menu.view().viewport() filter = ToolTipEventFilter() viewport.installEventFilter(filter) drag.exec_(Qt.CopyAction) viewport.removeEventFilter(filter)
def startDrag(self, event): """ Override startDrag method to display custom icon """ # Get image of selected item selected = self.selectedIndexes() # Start drag operation drag = QDrag(self) drag.setMimeData(self.model.mimeData(selected)) icon = self.model.data(selected[0], Qt.DecorationRole) drag.setPixmap( icon.pixmap(QSize(self.drag_item_size, self.drag_item_size))) drag.setHotSpot( QPoint(self.drag_item_size / 2, self.drag_item_size / 2)) # Create emoji file before drag starts data = json.loads(drag.mimeData().text()) file = self.add_file(data[0]) # Update mimedata for emoji data = QMimeData() data.setText(json.dumps([file.id])) data.setHtml("clip") drag.setMimeData(data) # Start drag drag.exec_()
def mouseMoveEvent(self, event): """ Protected method to handle mouse move events. @param event reference to the mouse move event (QMouseEvent) """ if event.buttons() == Qt.MouseButtons(Qt.LeftButton) and \ (event.pos() - self.__dragStartPos).manhattanLength() > \ QApplication.startDragDistance(): drag = QDrag(self) mimeData = QMimeData() index = self.tabAt(event.pos()) mimeData.setText(self.tabText(index)) mimeData.setData("action", b"tab-reordering") mimeData.setData("tabbar-id", str(id(self)).encode("utf-8")) mimeData.setData( "source-index", QByteArray.number(self.tabAt(self.__dragStartPos))) mimeData.setData( "tabwidget-id", str(id(self.parentWidget())).encode("utf-8")) drag.setMimeData(mimeData) if event.modifiers() == Qt.KeyboardModifiers(Qt.ShiftModifier): drag.exec_(Qt.DropActions(Qt.CopyAction)) elif event.modifiers() == Qt.KeyboardModifiers(Qt.NoModifier): drag.exec_(Qt.DropActions(Qt.MoveAction)) super(TabBar, self).mouseMoveEvent(event)
def mouseMoveEvent(self, event): drag = QDrag(self) mimedata = QMimeData() current_item_test = self.currentItem().text() mimedata.setText(current_item_test) drag.setMimeData(mimedata) drag.exec_()
def mouseMoveEvent(self, event): if QLineF(QPointF(event.screenPos()), QPointF(event.buttonDownScreenPos(Qt.LeftButton))).length() < QApplication.startDragDistance(): return drag = QDrag(event.widget()) mime = QMimeData() drag.setMimeData(mime) ColorItem.n += 1 if ColorItem.n > 2 and qrand() % 3 == 0: image = QImage(':/images/head.png') mime.setImageData(image) drag.setPixmap(QPixmap.fromImage(image).scaled(30,40)) drag.setHotSpot(QPoint(15, 30)) else: mime.setColorData(self.color) mime.setText("#%02x%02x%02x" % (self.color.red(), self.color.green(), self.color.blue())) pixmap = QPixmap(34, 34) pixmap.fill(Qt.white) painter = QPainter(pixmap) painter.translate(15, 15) painter.setRenderHint(QPainter.Antialiasing) self.paint(painter, None, None) painter.end() pixmap.setMask(pixmap.createHeuristicMask()) drag.setPixmap(pixmap) drag.setHotSpot(QPoint(15, 20)) drag.exec_() self.setCursor(Qt.OpenHandCursor)
def mouseMoveEvent(self, event): if not (event.buttons() & Qt.Qt.LeftButton): return if (event.pos() - self.drag_start_position ).manhattanLength() < QApplication.startDragDistance(): return drag = QDrag(self) mimedata = QMimeData() row = self.indexAt(self.drag_start_position).row() collumn = self.indexAt(self.drag_start_position).column() mimedata.setText(self.item(row, collumn).text()) drag.setMimeData(mimedata) item = QLabel(self.item(row, collumn).text()) item.adjustSize() # item.setFixedSize(100,50) pixmap = QtWidgets.QWidget.grab(item) # pixmap = QPixmap(self.size()) painter = QPainter(pixmap) painter.drawPixmap(item.rect(), item.grab()) painter.end() drag.setPixmap(pixmap) # drag.setHotSpot(event.pos()) drag.setPixmap(pixmap) # shift the Pixmap so that it coincides with the cursor position # drag.setHotSpot(event.pos()) drag.exec_(QtCore.Qt.CopyAction | QtCore.Qt.MoveAction)
def _start_drag_files(self, action): drag = QDrag(self) drag.setPixmap(QPixmap(":/image/List.png")) indexes = self.ui.filesList.selectionModel().selectedRows() mime_data = self.ui.filesList.model().mimeData(indexes) drag.setMimeData(mime_data) drag.exec_(Qt.CopyAction)
def mouseMoveEvent(self, event): if self.dialog.removable: return if not (event.buttons() & Qt.LeftButton): return if (event.pos() - self.drag_start_position).manhattanLength() < QApplication.startDragDistance(): return drag = QDrag(self) mimedata = QMimeData() mimedata.setText(self.text()) if self.pixmap() is None: return mimedata.setImageData(self.pixmap().toImage()) drag.setMimeData(mimedata) pixmap = QPixmap(self.size()) self.image = pixmap painter = QPainter(pixmap) painter.drawPixmap(self.rect(), self.grab()) painter.end() drag.setPixmap(pixmap) drag.setHotSpot(event.pos()) print("Moving") drag.exec_(Qt.MoveAction)
def mouseMoveEvent(self, e: QtGui.QMouseEvent) -> None: if e.buttons() != Qt.LeftButton: return None #根据currentIndex获取数据行的名称 mimeData = QMimeData() currentRow = self.currentIndex().row() index = self.model().index(currentRow, 0) itemName = self.model().data(index) mimeData.setText('{}:{}:{}'.format(self.type, self.address, itemName)) #绘制拖动时的图像 width = self.columnWidth(0) height = self.rowHeight(currentRow) pixmap = QPixmap(width, height) paint = QPainter() paint.begin(pixmap) paint.fillRect(pixmap.rect(), QColor(Qt.white)) paint.drawRect(0, 0, width - 1, height - 1) paint.drawText(pixmap.rect(), Qt.AlignCenter, itemName) paint.end() #设定拖动项的数据和图标 drag = QDrag(self) drag.setMimeData(mimeData) drag.setPixmap(pixmap) drag.exec_(Qt.MoveAction) super().mouseMoveEvent(e)
def mouseMoveEvent(self, event): if not (event.buttons() & Qt.LeftButton): return None manhattanLength = event.pos() manhattanLength -= self.drag_start_position manhattanLength = manhattanLength.manhattanLength() if manhattanLength < QApplication.startDragDistance(): return None drag = QDrag(self) mimedata = QMimeData() message = json.dumps({ "codigo": self.code, "estado": self.state, "semestre actual": self.semester }) mimedata.setText(message) drag.setMimeData(mimedata) pixmap = QPixmap(QSize(subject_width, self.height)) painter = QPainter(pixmap) painter.drawPixmap(0, 0, subject_width, self.height, self.grab()) painter.end() pixmap = pixmap.scaled(QSize(subject_width, self.height)) drag.setPixmap(pixmap) drag.setHotSpot(event.pos()) drag.exec_(Qt.CopyAction | Qt.MoveAction)
def startDrag(dragSource, supportedActions, mimeData, pixmap=None, pixmapCursorOffset=None): """ Helper to create a QDrag and start a drag with the dragData as parameter. Args: dragSource: QObject supportedActions: Qt.DropActions mimeData: QMimeData pixmap: QPixmap pixmapCursorOffset: QPoint """ drag = QDrag(dragSource) drag.setMimeData(mimeData) tooltip = CDragTooltip.get() tooltip.startDrag() if mimeData and pixmap: tooltip.setDefaultPixmap(pixmap) if pixmapCursorOffset != None: tooltip.setCursorOffset(pixmapCursorOffset) CDragDropData.signalDragStart(mimeData) drag.exec_(supportedActions) CDragDropData.signalDragEnd(mimeData) tooltip.stopDrag()
def mousePressEvent(self, event): mime = QMimeData() itemData = QByteArray() mime.setData('application/x-dnditemdata', itemData) drag = QDrag(self) drag.setMimeData(mime) drag.exec_(Qt.MoveAction)
def startDrag(self, event): """ Override startDrag method to display custom icon """ # Get first column indexes for all selected rows selected = self.selectionModel().selectedRows(0) # Get image of current item current = self.selectionModel().currentIndex() if not current.isValid() and selected: current = selected[0] if not current.isValid(): # We can't find anything to drag log.warning("No draggable items found in model!") return False # Get icon from column 0 on same row as current item icon = current.sibling(current.row(), 0).data(Qt.DecorationRole) # Start drag operation drag = QDrag(self) drag.setMimeData(self.model().mimeData(selected)) drag.setPixmap(icon.pixmap(QSize(self.drag_item_size, self.drag_item_size))) drag.setHotSpot(QPoint(self.drag_item_size / 2, self.drag_item_size / 2)) drag.exec_()
def mouseMoveEvent(self, e: QtGui.QMouseEvent) -> None: if e.buttons() != Qt.LeftButton: return None #根据currentIndex获取数据行的名称 mimeData = QMimeData() mimeData.setText('{}:{}:{}'.format(self.type, self.address, self.text())) #绘制拖动时的图像 pixmap = QPixmap(self.size()) paint = QPainter() paint.begin(pixmap) # paint.fillRect(pixmap.rect(),QColor(Qt.white)) # paint.drawRect(pixmap.rect()) paint.drawPixmap(self.rect(), self.grab()) paint.drawText(pixmap.rect(), Qt.AlignCenter, self.text()) paint.end() #设定拖动项的数据和图标 drag = QDrag(self) drag.setMimeData(mimeData) drag.setPixmap(pixmap) drag.exec_(Qt.MoveAction) super().mouseMoveEvent(e)
def startDrag(self): self.mimeData = MimeData() self.mimeData.dataRequested.connect(self.createData, Qt.DirectConnection) drag = QDrag(self) drag.setMimeData(self.mimeData) drag.setPixmap(QPixmap(':/images/drag.png')) drag.exec_(Qt.CopyAction)
def mouseMoveEvent(self, e): # 버튼 위에서 마우스가 움직이고 있을때 발생하는 이벤트 # if e.buttons() != Qt.RightButton: #마우스 오른쪽 버튼이 눌린 상태가 아니면 이벤트를 종료 if e.buttons() != Qt.LeftButton: # 마우스 오른쪽 버튼이 눌린 상태가 아니면 이벤트를 종료 return mimeData = QMimeData() # 다양한 멀티미디어 데이터를 다룬다 drag = QDrag(self) # 드레그 객체 생성 drag.setMimeData(mimeData) drag.exec_(Qt.MoveAction) # 객체 활성화
def mouseMoveEvent(self, e): mime_data = QMimeData() data = "{}_{}_{}".format(self.bobine.code, self.bobine.pose, self.bobine.index) mime_data.setText(data) drag = QDrag(self) drag.setMimeData(mime_data) drag.exec_(Qt.MoveAction)
def mouseMoveEvent(self, event): mime_data = QMimeData() mime_data.setText(self.text) drag = QDrag(self) drag.setMimeData(mime_data) drag.setHotSpot(event.pos() - self.rect().topLeft()) drag.exec_()
def startDrag(self): self.mimeData = MimeData() self.mimeData.dataRequested.connect(self.createData, Qt.DirectConnection) drag = QDrag(self) drag.setMimeData(self.mimeData) drag.setPixmap(QPixmap(':/images/drag.png')) drag.exec_(Qt.CopyAction)
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()) drag.exec_(Qt.MoveAction)
def mouseMove(event, parent): """ Function for Mouse Move Event, used by original blocks and partially by generated blocks""" mimeData = QMimeData() drag = QDrag(parent) drag.setMimeData(mimeData) drag.setHotSpot(event.pos()) drag.exec_(Qt.MoveAction)
def mouseMoveEvent(self, e): ##버튼 위에서 마우스가 움직일때 발생하는 이벤트 if e.buttons() != Qt.RightButton: return mimeData = QMimeData() ## 다양한 멀티데이터를 다를 수 있음? drag = QDrag(self) drag.setMimeData(mimeData) drag.exec_(Qt.MoveAction)
def StartDrag(self): drag = QDrag(self) data = QMimeData() data.setText(None) data.setUrls([QUrl.fromLocalFile(self.imgFile)]) drag.setMimeData(data) drag.setPixmap(QPixmap(paths['imagePath'] + 'dnd2.png')) drag.exec_()
def mouseMoveEvent(self, event): if not self.movible: return # Drag and Drop drag = QDrag(self) mimedata = QMimeData() drag.setMimeData(mimedata) drag.setPixmap(self.grab()) drag.setHotSpot(event.pos()) drag.exec_(Qt.CopyAction | Qt.MoveAction)
def mouseMoveEvent(self, e): super(ListWidget, self).mouseMoveEvent(e) mime_data = QMimeData() if self.itemAt(e.pos()) == None: return else: mime_data.setText(self.itemAt(e.pos()).text()) drag = QDrag(self) drag.setMimeData(mime_data) drag.exec_(Qt.CopyAction)
def mouseMoveEvent(self, event: QMouseEvent) -> None: super().mouseMoveEvent(event) if event.buttons() == Qt.RightButton: mime = QMimeData() drag = QDrag(self.parent()) drag.setMimeData(mime) drag.setHotSpot(event.pos()) drag.exec_(Qt.MoveAction) else: self.change_parent_mouse_pos(event)
def mouseMoveEvent(self, e: QMouseEvent): # 왼쪽 버튼은 클릭용이므로 오른쪽 버튼 입력 허용 if e.buttons() != Qt.RightButton: return mime_data = QMimeData() # 데이터 전송을 위한 MIME 객체 선언 drag = QDrag(self) # QDrag는 오직 드래그앤드랍에서만 사용 drag.setMimeData(mime_data) drag.exec_(Qt.MoveAction)
def newComponentButtonMousePress(self, componentType, event): self.tool = Tool.NewComponent self.mouseState = MouseState.Dragging self.newComponentType = componentType newComponentDrag = QDrag(self.view) newComponentDrag.setHotSpot(QPoint(self.view.ui.circuitDiagram.blockSideLength / 2, self.view.ui.circuitDiagram.blockSideLength / 2)) newComponentDrag.setMimeData(QMimeData()) newComponentDrag.setPixmap(QPixmap(self.view.ui.circuitDiagram.componentTypeToImageName(componentType)).scaled(self.view.ui.circuitDiagram.blockSideLength, self.view.ui.circuitDiagram.blockSideLength)) newComponentDrag.exec_(Qt.MoveAction)
def dragFile(widget, filename, icon=None, dropactions=Qt.CopyAction): """Starts dragging the given local file from the widget.""" if icon is None or icon.isNull(): icon = QFileIconProvider().icon(QFileInfo(filename)) drag = QDrag(widget) data = QMimeData() data.setUrls([QUrl.fromLocalFile(filename)]) drag.setMimeData(data) drag.setPixmap(icon.pixmap(32)) drag.exec_(dropactions)
def __dragSnapshot(self): """ Private slot handling the dragging of the preview picture. """ drag = QDrag(self) mimeData = QMimeData() mimeData.setImageData(self.__snapshot) drag.setMimeData(mimeData) drag.setPixmap(self.preview.pixmap()) drag.exec_(Qt.CopyAction)
def dragFile(widget, filename, icon=None, dropactions=Qt.CopyAction): """Starts dragging the given local file from the widget.""" if icon is None or icon.isNull(): icon = QFileIconProvider().icon(QFileInfo(filename)) drag = QDrag(widget) data = QMimeData() data.setUrls([QUrl.fromLocalFile(filename)]) drag.setMimeData(data) drag.setPixmap(icon.pixmap(32)) drag.exec_(dropactions)
def __dragSnapshot(self): """ Private slot handling the dragging of the preview picture. """ drag = QDrag(self) mimeData = QMimeData() mimeData.setImageData(self.__snapshot) drag.setMimeData(mimeData) drag.setPixmap(self.preview.pixmap()) drag.exec_(Qt.CopyAction)
def mouseMoveEvent(self, e): modifiers = QApplication.keyboardModifiers() if modifiers == Qt.ControlModifier: mimeData = QMimeData() drag = QDrag(e.widget()) mimeData.setText("node") drag.setMimeData(mimeData) drag.exec_(Qt.MoveAction) self.ungrabMouse() if self.edgeInConstruction != None: self.edgeInConstruction.obsUpdate(e.scenePos())
def mousePressEvent(self, event): if event.button() == Qt.LeftButton: self.drag_started.emit(self.mapToParent(event.pos())) drag = QDrag(self) mimeData = QMimeData() mimeData.setText("Move Signal") pixmap = QPixmap(self.rect().size()) self.render(pixmap, QPoint(), QRegion(self.rect())) drag.setPixmap(pixmap) drag.setMimeData(mimeData) drag.exec_()
def mouseMoveEvent(self, event): if event.buttons() & Qt.LeftButton: index = self._findEventIndex(event) if self._maybeDragPosition is not None: if ((event.pos() - self._maybeDragPosition).manhattanLength() < QApplication.startDragDistance()): return # TODO: needs ordering or not? glyphList = " ".join( glyph.name for glyph in self.getSelectedGlyphs()) drag = QDrag(self) mimeData = QMimeData() mimeData.setText(glyphList) drag.setMimeData(mimeData) drag.exec_() self._maybeDragPosition = None event.accept() return if index == self._lastSelectedCell: return modifiers = event.modifiers() event.accept() if index is None: if not (modifiers & Qt.ControlModifier or modifiers & Qt.ShiftModifier): self.selection = set() self._lastSelectedCell = index return if modifiers & Qt.ControlModifier: if index in self._selection and index in self._oldSelection: selection = self.selection selection.remove(index) self.selection = selection elif (index not in self._selection and index not in self._oldSelection): selection = self.selection selection.add(index) self.selection = selection elif modifiers & Qt.ShiftModifier: newSelection = self._linearSelection(index) if newSelection is not None: self.selection = newSelection else: self.selection = {index} self.lastSelectedCell = index else: super(GlyphCollectionWidget, self).mouseMoveEvent(event)
def maybeExecuteDrag(self, event): if self._maybeDragPosition is None: return False if (event.localPos() - self._maybeDragPosition).manhattanLength() \ < QApplication.startDragDistance(): return False drag = QDrag(self) glyphs = self.glyphsForIndexes(self.selection()) mimeData = GlyphsMimeData() mimeData.setGlyphs(glyphs) drag.setMimeData(mimeData) drag.exec_() self._maybeDragPosition = None return True
def mouseMoveEvent(self, event): super().mouseMoveEvent(event) if ( event.buttons() == Qt.LeftButton and self.left_start is not None and (event.globalPos() - self.left_start).manhattanLength() >= QApplication.startDragDistance() ): self.drag_start.emit() mime = QMimeData() drag = QDrag(self) drag.setMimeData(mime) self.left_start = None drag.exec_(Qt.MoveAction) self.drag_stop.emit()
def mousePressEvent(self, event): child = self.childAt(event.pos()) if not child: return pixmap = QPixmap(child.pixmap()) itemData = QByteArray() dataStream = QDataStream(itemData, QIODevice.WriteOnly) dataStream << pixmap << QPoint(event.pos() - child.pos()) mimeData = QMimeData() mimeData.setData('application/x-dnditemdata', itemData) drag = QDrag(self) drag.setMimeData(mimeData) drag.setPixmap(pixmap) drag.setHotSpot(event.pos() - child.pos()) tempPixmap = QPixmap(pixmap) painter = QPainter() painter.begin(tempPixmap) painter.fillRect(pixmap.rect(), QColor(127, 127, 127, 127)) painter.end() child.setPixmap(tempPixmap) if drag.exec_(Qt.CopyAction | Qt.MoveAction, Qt.CopyAction) == Qt.MoveAction: child.close() else: child.show() child.setPixmap(pixmap)
def startDrag(self): image = self.image() data = QMimeData() data.setImageData(image) drag = QDrag(self) drag.setMimeData(data) if max(image.width(), image.height()) > 256: image = image.scaled(QSize(256, 256), Qt.KeepAspectRatio, Qt.SmoothTransformation) p = QPainter() p.begin(image) p.setCompositionMode(QPainter.CompositionMode_DestinationIn) p.fillRect(image.rect(), QColor(0, 0, 0, 160)) p.end() pixmap = QPixmap.fromImage(image) drag.setPixmap(pixmap) drag.setHotSpot(pixmap.rect().center()) drag.exec_(Qt.CopyAction)
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.exec_(Qt.MoveAction)
def mouseMoveEvent(self, event): """ Protected method to handle mouse move events. @param event reference to the mouse move event (QMouseEvent) """ if event.buttons() == Qt.MouseButtons(Qt.LeftButton) and \ (event.pos() - self.__dragStartPos).manhattanLength() > \ QApplication.startDragDistance(): drag = QDrag(self) mimeData = QMimeData() index = self.tabAt(event.pos()) mimeData.setText(self.tabText(index)) mimeData.setData("action", "tab-reordering") mimeData.setData("tabbar-id", str(id(self))) drag.setMimeData(mimeData) drag.exec_() E5WheelTabBar.mouseMoveEvent(self, event)
def mouseMoveEvent(self, e): ''' Luo ratapalsata Mime tiedot, kun sitä liikuttaa ''' mimeData = QMimeData() drag = QDrag(e.widget()) drag.setMimeData(mimeData) self.scene.valittu = self dropAction = drag.exec_(Qt.MoveAction)
def mouseMoveEvent(self, event): if (event.buttons() == Qt.LeftButton and (event.modifiers() == Qt.ControlModifier or event.modifiers() == Qt.ShiftModifier)): mime_data = QMimeData() mime_data.setText(PageWidget.DRAG_MAGIC) drag = QDrag(self) drag.setMimeData(mime_data) drag.setPixmap(self.grab(self.rect())) if event.modifiers() == Qt.ControlModifier: drag.exec_(Qt.MoveAction) else: drag.exec_(Qt.CopyAction) event.accept() else: event.ignore()
def mousePressEvent(self, me): if me.button() == Qt.LeftButton: child = self.find_label() if child != None: mime_data = QMimeData() mime_data.setData('text/plain', child.get_text()) drag = QDrag(self) drag.setMimeData(mime_data) #drag.setHotSpot(child.pos()) drag_action = drag.exec_(Qt.CopyAction | Qt.MoveAction)
def mouseMoveEvent(self, e): if e.buttons() != Qt.RightButton: return globalPos = self.mapToGlobal(e.pos()) tabBar = self.tabBar() posInTab = tabBar.mapFromGlobal(globalPos) self.indexTab = tabBar.tabAt(e.pos()) tabRect = tabBar.tabRect(self.indexTab) pixmap = QPixmap(tabRect.size()) tabBar.render(pixmap, QPoint(), QRegion(tabRect)) mimeData = QMimeData() drag = QDrag(tabBar) drag.setMimeData(mimeData) drag.setPixmap(pixmap) cursor = QCursor(Qt.OpenHandCursor) drag.setHotSpot(e.pos() - posInTab) drag.setDragCursor(cursor.pixmap(), Qt.MoveAction) drag.exec_(Qt.MoveAction)
def mouseMoveEvent(self, evt): """ Protected method to handle mouse move events. @param evt reference to the mouse event (QMouseEvent) """ if evt.button() == Qt.LeftButton and \ (evt.pos() - self.__dragStartPos).manhattanLength() > \ QApplication.startDragDistance() and \ self.__browser is not None: drag = QDrag(self) mimeData = QMimeData() title = self.__browser.title() if title == "": title = str(self.__browser.url().toEncoded(), encoding="utf-8") mimeData.setText(title) mimeData.setUrls([self.__browser.url()]) p = self.pixmap() if p: drag.setPixmap(p) drag.setMimeData(mimeData) drag.exec_()
def mouseMoveEvent(self, event): # if the left mouse button is used if self.drag_started: data = QByteArray() mime_data = QMimeData() mime_data.setData(self.mimetext, data) drag = QDrag(self) drag.setMimeData(mime_data) drag.setPixmap(self.icon.get_icon()) drag.setHotSpot(self.rect().topLeft()) # where do we drag from if drag.exec_(Qt.MoveAction): self.parent().icons.remove(self) self.deleteLater()
def mouseMoveEvent(self, event): if not event.buttons() and Qt.LeftButton: return distance = (event.pos() - self.start_mouse_drag).manhattanLength() if distance < QApplication.startDragDistance(): return item = self.selectedItems()[0] text = "<row>" + str(item.row()) + "<row>" + "<col>" + str(item.column()) + "<col>" + "<text>" + str(item.text()) + "<text>" print(text) drag = QDrag(self) mim_data = QMimeData() mim_data.setText(text) drag.setMimeData(mim_data) dropAction = drag.exec_(Qt.MoveAction)
def mouseMoveEvent(self, mouseEvent): """ Executed when the mouse if moved while a button is being pressed. :type mouseEvent: QMouseEvent """ if mouseEvent.buttons() & Qt.LeftButton: # Exclude edges from drag&drop since we need to source and edge to insert it in the diagram. if Item.ConceptNode <= self.item <= Item.PropertyAssertionNode: distance = (mouseEvent.pos() - self.startPos).manhattanLength() if distance >= QApplication.startDragDistance(): mimeData = QMimeData() mimeData.setText(str(self.item.value)) drag = QDrag(self) drag.setMimeData(mimeData) drag.setPixmap(self.pixmap) drag.setHotSpot(self.startPos - self.rect().topLeft()) drag.exec_(Qt.CopyAction) super().mouseMoveEvent(mouseEvent)
def mouseMoveEvent(self, e): # 右ボタンのときのみDnD有効 if e.buttons() != Qt.RightButton: return # MIMEベースでDnD情報を転送する mimeData = QMimeData() drag = QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(e.pos() - self.rect().topLeft()) # PyQt4ではdrag.start()だった dropAction = drag.exec_(Qt.MoveAction)
def mouseMoveEvent(self, evt): """ Protected method to handle mouse move events. @param evt reference to the event (QMouseEvent) """ if self.__model is None: super(E5ModelMenu, self).mouseMoveEvent(evt) return if not (evt.buttons() & Qt.LeftButton): super(E5ModelMenu, self).mouseMoveEvent(evt) return manhattanLength = (evt.pos() - self.__dragStartPosition).manhattanLength() if manhattanLength <= QApplication.startDragDistance(): super(E5ModelMenu, self).mouseMoveEvent(evt) return act = self.actionAt(self.__dragStartPosition) if act is None: super(E5ModelMenu, self).mouseMoveEvent(evt) return idx = self.index(act) if not idx.isValid(): super(E5ModelMenu, self).mouseMoveEvent(evt) return drag = QDrag(self) drag.setMimeData(self.__model.mimeData([idx])) actionRect = self.actionGeometry(act) if qVersion() >= "5.0.0": drag.setPixmap(self.grab(actionRect)) else: drag.setPixmap(QPixmap.grabWidget(self, actionRect)) if drag.exec_() == Qt.MoveAction: row = idx.row() if self.__dropIndex == idx.parent() and self.__dropRow <= row: row += 1 self.__model.removeRow(row, self.__root) if not self.isAncestorOf(drag.target()): self.close() else: self.aboutToShow.emit()
def mousePressEvent(self, event): itemData = QByteArray() dataStream = QDataStream(itemData, QIODevice.WriteOnly) dataStream << QByteArray(self.labelText) << QPoint(event.pos() - self.rect().topLeft()) mimeData = QMimeData() mimeData.setData("application/x-fridgemagnet", itemData) mimeData.setText(self.labelText) drag = QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(event.pos() - self.rect().topLeft()) drag.setPixmap(self.pixmap()) self.hide() if drag.exec_(Qt.MoveAction | Qt.CopyAction, Qt.CopyAction) == Qt.MoveAction: self.close() else: self.show()
def mousePressEvent(self, event): hotSpot = event.pos() mimeData = QMimeData() mimeData.setText(self.text()) mimeData.setData('application/x-hotspot', '%d %d' % (hotSpot.x(), hotSpot.y())) pixmap = QPixmap(self.size()) self.render(pixmap) drag = QDrag(self) drag.setMimeData(mimeData) drag.setPixmap(pixmap) drag.setHotSpot(hotSpot) dropAction = drag.exec_(Qt.CopyAction | Qt.MoveAction, Qt.CopyAction) if dropAction == Qt.MoveAction: self.close() self.update()
def startDrag(self, supportedActions): item = self.currentItem() itemData = QByteArray() dataStream = QDataStream(itemData, QIODevice.WriteOnly) pixmap = QPixmap(item.data(Qt.UserRole)) location = item.data(Qt.UserRole+1) dataStream << pixmap << location mimeData = QMimeData() mimeData.setData('image/x-puzzle-piece', itemData) drag = QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(QPoint(pixmap.width()/2, pixmap.height()/2)) drag.setPixmap(pixmap) if drag.exec_(Qt.MoveAction) == Qt.MoveAction: if self.currentItem() is not None: self.takeItem(self.row(item))
def mousePressEvent(self, event): square = self.targetSquare(event.pos()) found = self.findPiece(square) if found == -1: return location = self.pieceLocations[found] pixmap = self.piecePixmaps[found] del self.pieceLocations[found] del self.piecePixmaps[found] del self.pieceRects[found] if location == QPoint(square.x() / 80, square.y() / 80): self.inPlace -= 1 self.update(square) itemData = QByteArray() dataStream = QDataStream(itemData, QIODevice.WriteOnly) dataStream << pixmap << location mimeData = QMimeData() mimeData.setData('image/x-puzzle-piece', itemData) drag = QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(event.pos() - square.topLeft()) drag.setPixmap(pixmap) if drag.exec_(Qt.MoveAction) != Qt.MoveAction: self.pieceLocations.insert(found, location) self.piecePixmaps.insert(found, pixmap) self.pieceRects.insert(found, square) self.update(self.targetSquare(event.pos())) if location == QPoint(square.x() / 80, square.y() / 80): self.inPlace += 1