Пример #1
0
 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)
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
0
 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)