def mousePressEvent(self, event): child = self.childAt(event.pos()) if not child: return pixmap = QtGui.QPixmap(child.pixmap()) itemData = QtCore.QByteArray() dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.WriteOnly) dataStream << pixmap << QtCore.QPoint(event.pos() - child.pos()) mimeData = QtCore.QMimeData() mimeData.setData('application/x-dnditemdata', itemData) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.setPixmap(pixmap) drag.setHotSpot(event.pos() - child.pos()) tempPixmap = QtGui.QPixmap(pixmap) painter = QtGui.QPainter() painter.begin(tempPixmap) painter.fillRect(pixmap.rect(), QtGui.QColor(127, 127, 127, 127)) painter.end() child.setPixmap(tempPixmap) if drag.exec_(QtCore.Qt.CopyAction | QtCore.Qt.MoveAction, QtCore.Qt.CopyAction) == QtCore.Qt.MoveAction: child.close() else: child.show() child.setPixmap(pixmap)
def mouseMoveEvent(self, event): if not self.transaction.isCredit: mimeData = QtCore.QMimeData() mimeData.setText(self.transaction.name) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.exec_(QtCore.Qt.MoveAction)
def startDrag(dragSource, dropActions, objects): mimeData = QtCore.QMimeData() mimeData.setText("\n".join(["%s" % job.data.name for job in objects])) mimeDataAdd(mimeData, "application/x-job-names", [object.data.name for object in objects if isJob(object)]) mimeDataAdd(mimeData, "application/x-job-ids", [opencue.id(object) for object in objects if isJob(object)]) mimeDataAdd(mimeData, "application/x-group-names", [object.data.name for object in objects if isGroup(object)]) mimeDataAdd(mimeData, "application/x-group-ids", [opencue.id(object) for object in objects if isGroup(object)]) mimeDataAdd(mimeData, "application/x-host-names", [object.data.name for object in objects if isHost(object)]) mimeDataAdd(mimeData, "application/x-host-ids", [opencue.id(object) for object in objects if isHost(object)]) drag = QtGui.QDrag(dragSource) drag.setMimeData(mimeData) drag.exec_(QtCore.Qt.MoveAction)
def mouseMoveEvent(self, item): """Drag event""" shader = self.shader itemData = QtCore.QByteArray() dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.WriteOnly) dataStream << QtCore.QByteArray(str(shader)) mimeData = QtCore.QMimeData() icon = QtGui.QIcon() if cmds.nodeType(shader) == 'displacementShader': mimeData.setData("application/x-displacement", itemData) icon.addFile(os.path.join(d, "../../../icons/sgblue.xpm"), QtCore.QSize(25, 25)) else: mimeData.setData("application/x-shader", itemData) icon.addFile(os.path.join(d, "../../../icons/sg.xpm"), QtCore.QSize(25, 25)) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.setPixmap(icon.pixmap(50, 50)) drag.setHotSpot(QtCore.QPoint(0, 0)) drag.start(QtCore.Qt.MoveAction)
def mousePressEvent(self, event): self.collection_grid.item_properties.update_entry(self.metadata) cur_item = self.collection_grid.selected_item if cur_item: cur_item.setStyleSheet("""QLabel{border: 1px solid black}""") cur_item.is_selected = False if self.is_selected: self.is_selected = False self.setStyleSheet("""QLabel{border: 1px solid black}""") else: self.is_selected = True self.setStyleSheet("""QLabel{border: 1px solid blue}""") self.collection_grid.selected_item = self if self.from_gaia_scatter: mimeData = QtCore.QMimeData() mimeData.setText(str(self.metadata)) drag = QtGui.QDrag(self) drag.setPixmap(self.pixmap()) drag.setMimeData(mimeData) drag.setHotSpot(event.pos() - self.rect().topLeft()) drag.start(QtCore.Qt.MoveAction) super(CollectionItem, self).mousePressEvent(event)
def dragAcion(self): self.leaveAcion() dataBuffer = QtGui.QDrag(self.parent()) rigData = self.sender().index.data() ID = rigData["ID"] previewSize = self.parent().previewSize rigImage = IconDrag(rigData, previewSize).rigImage dragFile = os.path.join(tempfile.gettempdir(), "{}.png".format(ID)) rigImage.save(dragFile, "png") dragURL = QtCore.QUrl() dragURL = dragURL.fromLocalFile(dragFile) mimeData = QtCore.QMimeData() mimeData.setText(ID) mimeData.setImageData(rigImage) mimeData.setUrls([dragURL]) dataBuffer.setMimeData(mimeData) dragPreview = QtGui.QPixmap().fromImage(rigImage) dataBuffer.setPixmap(dragPreview) dataBuffer.setHotSpot(dragPreview.rect().center()) dataBuffer.exec_(QtCore.Qt.CopyAction) os.remove(dragFile)
def mouseMoveEvent(self, event: QtGui.QMouseEvent) -> None: # pragma: no cover if (not event.buttons() & QtCore.Qt.LeftButton or (event.pos() - self.drag_start_pos).manhattanLength() < QtWidgets.QApplication.startDragDistance()): return super().mouseMoveEvent(event) index = self.tabAt(event.pos()) if index == -1: return super().mouseMoveEvent(event) rect = self.tabRect(index) pixmap = QtGui.QPixmap(rect.size()) self.render(pixmap, QtCore.QPoint(), QtGui.QRegion(rect)) mime_data = QtCore.QMimeData() mime_data.setData("application/x-pew2tabbar", QtCore.QByteArray().number(index)) drag = QtGui.QDrag(self) drag.setMimeData(mime_data) drag.setPixmap(pixmap) drag.setDragCursor( QtGui.QCursor(QtCore.Qt.DragMoveCursor).pixmap(), QtCore.Qt.MoveAction) drag.exec_(QtCore.Qt.MoveAction)
def mouseMoveEvent(self, event): #super(expressionTreeWidget, self).mouseMoveEvent(event) #print "move: ", event if self.selected is not None: drag = QtGui.QDrag(self) drag.setMimeData(self.mimeData) drag.exec_(QtCore.Qt.CopyAction | QtCore.Qt.MoveAction, QtCore.Qt.CopyAction)
def mousePressEvent(self, event): mimeData = QtCore.QMimeData() mimeData.setText(self.widget_type) drag = QtGui.QDrag(self) drag.setPixmap(self.icon_pix) drag.setMimeData(mimeData) drag.setHotSpot(event.pos() - self.rect().topLeft()) drag.start(QtCore.Qt.MoveAction)
def mouseMoveEvent(self, e): mimeData = QtCore.QMimeData() drag = QtGui.QDrag(self) mimeData.setUrls([ 'remote://' + self.model().data(i) for i in self.selectedIndexes() ]) print(mimeData.urls()) drag.setMimeData(mimeData) dropAction = drag.start(QtCore.Qt.CopyAction)
def mouseMoveEvent(self, event): """The drag operation is initiated here.""" if not isinstance(event, QtGui.QMouseEvent): return app = QtWidgets.QApplication.instance() left_button = event.buttons() & QtCore.Qt.LeftButton if not left_button: return parent_widget = self.parent() editor = parent_widget.findChild(TodoItemEditor) drag = QtGui.QDrag(parent_widget) # Setting Mime Data mime_data = QtCore.QMimeData() mime_data.setData(u'bookmarks/todo-drag', QtCore.QByteArray('')) drag.setMimeData(mime_data) # Drag pixmap # Transparent image pixmap = QtGui.QPixmap(parent_widget.size()) parent_widget.render(pixmap) drag.setPixmap(pixmap) drag.setHotSpot( QtCore.QPoint( pixmap.width() - ((common.MARGIN() * 0.66) * 2), pixmap.height() / 2.0 ) ) # Drag origin indicator pixmap = QtGui.QPixmap(parent_widget.size()) painter = QtGui.QPainter() painter.begin(pixmap) painter.setPen(QtGui.QPen(QtCore.Qt.NoPen)) painter.setBrush(QtGui.QBrush(QtGui.QColor(200, 200, 200, 255))) painter.drawRect(pixmap.rect()) painter.end() overlay_widget = QtWidgets.QLabel(parent=parent_widget) overlay_widget.setFixedSize(parent_widget.size()) overlay_widget.setPixmap(pixmap) # Preparing the drag... parent_widget.parent().separator.setHidden(False) overlay_widget.show() # Starting the drag... drag.exec_(QtCore.Qt.CopyAction) # Cleanup after drag has finished... overlay_widget.close() overlay_widget.deleteLater() parent_widget.parent().separator.setHidden(True)
def performDrag(self): item = self.currentItem() if item: mimeData = QtCore.QMimeData() mimeData.setText(item.text()) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.setPixmap(QPixmap('person.png')) if drag.exec(QtCore.Qt.MoveAction) == QtCore.Qt.MoveAction: pass
def mouseMoveEvent(self, event): if not self.wfv_parent.doc.sound.is_playing(): if event.buttons() == QtCore.Qt.LeftButton: if not self.is_phoneme(): if (round(self.convert_to_frames(self.x() + event.x())) + 1 >= self.lipsync_object.end_frame ) and not self.is_moving: self.is_resizing = True self.resize_origin = 1 else: self.is_resizing = False self.is_moving = True else: self.is_moving = True if self.is_resizing and not self.is_moving: if self.get_frame_size() < self.get_min_size(): self.lipsync_object.end_frame = self.lipsync_object.start_frame + self.get_min_size( ) self.after_reposition() if self.resize_origin == 1: # start resize from right side if round( self.convert_to_frames(event.x() + self.x()) ) + 1 >= self.lipsync_object.start_frame + self.get_min_size( ): if round(self.convert_to_frames(event.x() + self.x()) ) + 1 <= self.get_right_max(): self.lipsync_object.end_frame = round( self.convert_to_frames(event.x() + self.x())) + 1 self.resize( self.convert_to_pixels( self.lipsync_object.end_frame) - self.convert_to_pixels( self.lipsync_object.start_frame), self.height()) # elif self.resize_origin == 0: # start resize from left side # if round(self.convert_to_frames(event.x() + self.x())) < self.lipsync_object.end_frame: # if round(self.convert_to_frames(event.x() + self.x())) >= self.get_left_max(): # self.lipsync_object.start_frame = round(self.convert_to_frames(event.x() + self.x())) # new_length = self.convert_to_pixels(self.lipsync_object.end_frame) - self.convert_to_pixels(self.lipsync_object.start_frame) # self.resize(new_length, self.height()) # self.move(self.convert_to_pixels(self.lipsync_object.start_frame), self.y()) else: self.is_moving = True mime_data = QtCore.QMimeData() drag = QtGui.QDrag(self) drag.setMimeData(mime_data) drag.setHotSpot(event.pos() - self.rect().topLeft()) self.hot_spot = drag.hotSpot().x() # PyQt5 and PySide use different function names here, likely a Qt4 vs Qt5 problem. try: exec("dropAction = drag.exec(QtCore.Qt.MoveAction)") except (SyntaxError, AttributeError): dropAction = drag.start(QtCore.Qt.MoveAction)
def mouseMoveEvent(self, e): if e.buttons() != QtCore.Qt.RightButton: print('') mimeData = QtCore.QMimeData() drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(e.pos() - self.rect().topLeft()) dropAcion = drag.exec_(QtCore.Qt.MoveAction)
def mousePressEvent(self, event): item = self.itemAt(event.pos()) name = item.text() drag = QtGui.QDrag(self) mime_data = QtCore.QMimeData() mime_data.setText(name) drag.setMimeData(mime_data) drag.exec_() super(NodeList, self).mousePressEvent(event)
def mousePressEvent(self, event): """this function is needed for the drag and drop""" if event.button() == QtCore.Qt.MouseButton.LeftButton and self.drag == True: self.dragInfo = "dragged" drag = QtGui.QDrag(self) mimeData = QtCore.QMimeData() mimeData.setText(json.dumps({"index": self.positionIndex, "color": self.ColorIndex})) drag.setMimeData(mimeData) tick = QtGui.QPixmap(r"res\colors\{index}".format(index=self.ColorIndex)) tickSized = tick.scaled(self.geometry().width(),self.geometry().height()) drag.setPixmap(tickSized) drag.exec_()
def startDrag(self, supported_actions): items = self.selectedItems() nodes = [] for item in items: nodes.append(item.data(QtCore.Qt.UserRole)) nodes_str = " ".join(nodes) mime_data = QtCore.QMimeData() mime_data.setData("zurbrigg/node_list", QtCore.QByteArray(str(nodes_str))) drag = QtGui.QDrag(self) drag.setMimeData(mime_data) drag.exec_()
def mouseMoveEvent(self, e): # only drag and drop with right mouse button # documentation: QMouseEvents: https://doc-snapshots.qt.io/qtforpython/PySide2/QtGui/QMouseEvent.html#PySide2.QtGui.QMouseEvent if e.buttons() != QtCore.Qt.RightButton: return # documentation: https://doc-snapshots.qt.io/qtforpython/PySide2/QtCore/QMimeData.html?highlight=qmimedata # define information than can be stored in the clipboard, and transfered via drag and drop mimeData = QtCore.QMimeData() # documentation: https://doc-snapshots.qt.io/qtforpython/PySide2/QtGui/QDrag.html#PySide2.QtGui.QDrag drag = QtGui.QDrag(self) drag.setMimeData(mimeData) # documentation: https://doc-snapshots.qt.io/qtforpython/PySide2/QtCore/QRect.html#PySide2.QtCore.QRect # topLeft() returns the position of the topLeft corner drag.setHotSpot(e.globalPos() - self.rect().topLeft()) dropAction = drag.start(QtCore.Qt.MoveAction)
def mouseMoveEvent(self, mouse_event): if mouse_event.buttons() & QtCore.Qt.LeftButton: if (mouse_event.pos() - self.drag_start_pos).manhattanLength() >= QtWidgets.QApplication.startDragDistance(): items = self.selectedItems() nodes = [] for item in items: nodes.append(item.data(QtCore.Qt.UserRole)) nodes_str = " ".join(nodes) mime_data = QtCore.QMimeData() mime_data.setData("zurbrigg/node_list", QtCore.QByteArray(str(nodes_str))) drag = QtGui.QDrag(self) drag.setMimeData(mime_data) drag.exec_()
def mousePressEvent(self, event): """ Init the drag and drop system for reordering widgets. Limite the size of the thumbnail's pixmap to 200pix height Add a small gradient as alpha mask. """ widget_size = self.widget.size() w_h = widget_size.height() pix_h = 100 if w_h < 200: pix_h = w_h pix_w = widget_size.width() mask_pix = QtGui.QPixmap(QtCore.QSize(pix_w, pix_h)) w_pix = QtGui.QPixmap(widget_size) self.widget.render(w_pix) painter = QtGui.QPainter(mask_pix) gradient = QtGui.QLinearGradient(QtCore.QPointF(mask_pix.rect().topLeft()), QtCore.QPointF(mask_pix.rect().bottomLeft())) gradient.setColorAt(0, QtGui.QColor(200, 200, 200)) gradient.setColorAt(0.5, QtGui.QColor(200, 200, 200)) gradient.setColorAt(1, QtCore.Qt.black) brush = QtGui.QBrush(gradient) painter.setCompositionMode(QtGui.QPainter.CompositionMode_Source) painter.fillRect(QtCore.QRectF(0, 0, pix_w, pix_h), w_pix) painter.setCompositionMode(QtGui.QPainter.CompositionMode_DestinationIn) painter.fillRect(QtCore.QRectF(0, 0, pix_w, pix_h), brush) painter.end() pix = w_pix.copy(0, 0, pix_w, pix_h) mimeData = QtCore.QMimeData() mimeData.setText("%W%;" + str(self.widget.idx)) drag = QtGui.QDrag(self) drag.setPixmap(pix) drag.setMimeData(mimeData) drag.setHotSpot(event.pos() - self.rect().topLeft()) drag.start(QtCore.Qt.MoveAction)
def mouseMoveEvent(self, e): if not (e.buttons() & QtCore.Qt.LeftButton): return leni = ( e.pos() - self.mouse_click_ctx.info.pos ).manhattanLength() if (leni < QtWidgets.QApplication.startDragDistance()): return drag = QtGui.QDrag(self) mimeData = QtCore.QMimeData() mimeData.setData("application/octet-stream", pickle.dumps(self.device) # pickle.dumps(None) ) drag.setMimeData(mimeData) dropAction = drag.exec_(QtCore.Qt.CopyAction | QtCore.Qt.MoveAction)
def startDrag(self, supportedActions): drag = QtGui.QDrag(self) # Gather items source urls imageUrls = [] for item in self.selectedItems(): tp = item.data(32) sourceUrl = QtCore.QUrl.fromLocalFile(tp.sourcePath) imageUrls.append(sourceUrl) # Configure mime data mimeData = QtCore.QMimeData() mimeData.setUrls(imageUrls) drag.setMimeData(mimeData) pixmap = QtGui.QPixmap( utils.getCustomIconPath(cfg.resourcePath, 'dragImage.png')) drag.setPixmap(pixmap) drag.exec_(supportedActions, QtCore.Qt.CopyAction)
def startDrag(self, lb): pixmap = lb.dragpixmap pieza = lb.pieza itemData = QtCore.QByteArray(pieza.encode("utf-8")) self.owner.ultimaPieza = pieza self.owner.ponCursor() mimeData = QtCore.QMimeData() mimeData.setData("image/x-lc-dato", itemData) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot( QtCore.QPoint(pixmap.width() // 2, pixmap.height() // 2)) drag.setPixmap(pixmap) drag.exec_(QtCore.Qt.MoveAction)
def startDrag(self, supportedActions): item = self.currentItem() itemData = QtCore.QByteArray() dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.WriteOnly) pixmap = QtGui.QPixmap(item.data(QtCore.Qt.UserRole)) location = item.data(QtCore.Qt.UserRole+1) dataStream << pixmap << location mimeData = QtCore.QMimeData() mimeData.setData('image/x-puzzle-piece', itemData) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(QtCore.QPoint(pixmap.width()/2, pixmap.height()/2)) drag.setPixmap(pixmap) if drag.exec_(QtCore.Qt.MoveAction) == QtCore.Qt.MoveAction: self.takeItem(self.row(item))
def _handleMousePress(self, index): self._leftMouseButton = int( QtWidgets.QApplication.mouseButtons()) == QtCore.Qt.LeftButton if index.parent().isValid() and self._leftMouseButton: itemData = QtCore.QByteArray() dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.WriteOnly) step = self.model().data(index, QtCore.Qt.UserRole + 1) if step._icon: pixmap = QtGui.QPixmap(step._icon) else: pixmap = QtGui.QPixmap() pixmap.convertFromImage( QtGui.QImage(':/workflow/images/default_step_icon.png')) pixmap = pixmap.scaled(64, 64, aspectRatioMode=QtCore.Qt.KeepAspectRatio, transformMode=QtCore.Qt.FastTransformation) hotspot = QtCore.QPoint(pixmap.width() / 2, pixmap.height() / 2) name = step.getName().encode( 'utf-8') # bytearray(step.getName(), sys.stdout.encoding) dataStream.writeUInt32(len(name)) if sys.version_info < (3, 0): dataStream.writeRawData(name) else: buf = QtCore.QByteArray(name) dataStream << buf #.writeRawData(name) dataStream << hotspot mimeData = QtCore.QMimeData() mimeData.setData('image/x-workflow-step', itemData) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(hotspot) drag.setPixmap(pixmap) drag.exec_(QtCore.Qt.MoveAction)
def newdisplaceListStartDrag(self, event): index = self.displacementList.indexAt(event.pos()) if not index.isValid(): return selected = self.displacementList.itemFromIndex(index) self.shaderCLicked(selected) itemData = QtCore.QByteArray() dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.WriteOnly) dataStream << QtCore.QByteArray(str(selected.text())) mimeData = QtCore.QMimeData() mimeData.setData("application/x-displacement", itemData) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.setPixmap( self.displacementList.itemAt(event.pos()).icon().pixmap(50, 50)) drag.setHotSpot(QtCore.QPoint(0, 0)) drag.start(QtCore.Qt.MoveAction)
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 == QtCore.QPoint(square.x() + 80, square.y() + 80): self.inPlace -= 1 self.update(square) itemData = QtCore.QByteArray() dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.WriteOnly) dataStream << pixmap << location mimeData = QtCore.QMimeData() mimeData.setData('image/x-puzzle-piece', itemData) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(event.pos() - square.topLeft()) drag.setPixmap(pixmap) if drag.start(QtCore.Qt.MoveAction) == 0: self.pieceLocations.insert(found, location) self.piecePixmaps.insert(found, pixmap) self.pieceRects.insert(found, square) self.update(self.targetSquare(event.pos())) if location == QtCore.QPoint(square.x() / 80, square.y() / 80): self.inPlace += 1
def mousePressEvent(self, event): hotSpot = event.pos() mimeData = QtCore.QMimeData() mimeData.setText(self.text()) mimeData.setData('application/x-hotspot', '%d %d' % (hotSpot.x(), hotSpot.y())) pixmap = QtGui.QPixmap(self.size()) self.render(pixmap) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.setPixmap(pixmap) drag.setHotSpot(hotSpot) dropAction = drag.exec_(QtCore.Qt.CopyAction | QtCore.Qt.MoveAction, QtCore.Qt.CopyAction) if dropAction == QtCore.Qt.MoveAction: self.close() self.update()
def mousePressEvent(self, event): item = self.itemAt(event.pos()) if not item: return None if self.indexOfTopLevelItem(item) >= 0: # Item is a top level item and it doesn't have drag and drop abilities return QtWidgets.QTreeWidget.mousePressEvent(self, event) itemData = QtCore.QByteArray() dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.WriteOnly) step = item.data(0, QtCore.Qt.UserRole) if step._icon: pixmap = QtGui.QPixmap(step._icon) else: # icon = createDefaultImageIcon(step.getName()) pixmap = QtGui.QPixmap() pixmap.convertFromImage(QtGui.QImage(':/workflow/images/default_step_icon.png')) pixmap = pixmap.scaled(64, 64, aspectRatioMode=QtCore.Qt.KeepAspectRatio, transformMode=QtCore.Qt.FastTransformation) hotspot = QtCore.QPoint(pixmap.width() / 2, pixmap.height() / 2) name = step.getName().encode('utf-8') # bytearray(step.getName(), sys.stdout.encoding) dataStream.writeUInt32(len(name)) dataStream.writeRawData(name) dataStream << hotspot mimeData = QtCore.QMimeData() mimeData.setData('image/x-workflow-step', itemData) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(hotspot) drag.setPixmap(pixmap) drag.exec_(QtCore.Qt.MoveAction) return QtWidgets.QTreeWidget.mousePressEvent(self, event)
def mouseMoveEvent(self, event): if QtCore.QLineF( QtCore.QPointF(event.screenPos()), QtCore.QPointF(event.buttonDownScreenPos(QtCore.Qt.LeftButton)) ).length() < QtGui.QApplication.startDragDistance(): return drag = QtGui.QDrag(event.widget()) mime = QtCore.QMimeData() drag.setMimeData(mime) ColorItem.n += 1 if ColorItem.n > 2 and QtCore.qrand() % 3 == 0: image = QtGui.QImage(':/images/head.png') mime.setImageData(image) drag.setPixmap(QtGui.QPixmap.fromImage(image).scaled(30, 40)) drag.setHotSpot(QtCore.QPoint(15, 30)) else: mime.setColorData(self.color) mime.setText( "#%02x%02x%02x" % (self.color.red(), self.color.green(), self.color.blue())) pixmap = QtGui.QPixmap(34, 34) pixmap.fill(QtCore.Qt.white) painter = QtGui.QPainter(pixmap) painter.translate(15, 15) painter.setRenderHint(QtGui.QPainter.Antialiasing) self.paint(painter, None, None) painter.end() pixmap.setMask(pixmap.createHeuristicMask()) drag.setPixmap(pixmap) drag.setHotSpot(QtCore.QPoint(15, 20)) drag.exec_() self.setCursor(QtCore.Qt.OpenHandCursor)