def updateMimeData( self, hasColor, color, hasHtml, html, hasImage, image, hasText, text, hasUrls, urls, hasFiles, files, ): # 客户端剪切板同步到服务端 self.append('收到客户端发送的剪贴板') clipboard = QApplication.clipboard() clipboard.blockSignals(True) data = QMimeData() if hasColor: data.setColorData(color) if hasHtml: data.setHtml(html) if hasImage: data.setImageData(image) if hasText: data.setText(text) # if hasUrls: # data.setUrls(urls) if hasFiles: data.setData('') clipboard.setMimeData(data) clipboard.blockSignals(False)
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 ( 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: root = QFileInfo(__file__).absolutePath() image = QImage(root + "/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 updateMimeData(self, hasColor, color, hasHtml, html, hasImage, image, hasText, text, hasUrls, urls): # 远程的剪贴板同步到客户端 clipboard = QApplication.clipboard() clipboard.blockSignals(True) data = QMimeData() if hasColor: data.setColorData(color) if hasHtml: data.setHtml(html) if hasImage: data.setImageData(image) if hasText: data.setText(text) if hasUrls: data.setUrls(urls) clipboard.setMimeData(data) clipboard.blockSignals(False)