PyQt5学习之会使用剪贴板

使用剪贴板(2020年8月5号)

import sys, math
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *


class ClipBoard(QDialog):
    def __init__(self):
        super(ClipBoard, self).__init__()
        textCopyButton = QPushButton('复制文本')
        textPasteButton = QPushButton('粘贴文本')

        htmlCopyButton = QPushButton('复制HTML')
        htmlPasteButton = QPushButton('粘贴HTML')

        imageCopyButton = QPushButton('复制图像')
        imagePasteButton = QPushButton('粘贴图像')

        self.textLabel = QLabel('默认文本')
        self.imageLabel = QLabel()
        self.imageLabel.setPixmap(QPixmap('./images/abc.jpg'))

        layout = QGridLayout()
        layout.addWidget(textCopyButton,0,0)
        layout.addWidget(imageCopyButton,0,1)
        layout.addWidget(htmlCopyButton,0,2)
        layout.addWidget(textPasteButton,1,0)
        layout.addWidget(htmlPasteButton,1,1)
        layout.addWidget(imagePasteButton,1,2)

        layout.addWidget(self.textLabel,2,0,1,2)
        layout.addWidget(self.imageLabel,2,2)

        self.setLayout(layout)

        textCopyButton.clicked.connect(self.copyText)
        textPasteButton.clicked.connect(self.pasteText)
        htmlCopyButton.clicked.connect(self.copyHtml)
        htmlPasteButton.clicked.connect(self.pasteHtml)
        imageCopyButton.clicked.connect(self.copyImage)
        imagePasteButton.clicked.connect(self.pasteImage)

        self.setWindowTitle('学习剪贴板')

    def copyText(self):
        clipboard = QApplication.clipboard()
        clipboard.setText('hello world')
    def pasteText(self):
        QClipboard = QApplication.clipboard()
        self.textLabel.setText(QClipboard.text())

    def copyImage(self):
        QClipboard = QApplication.clipboard()
        QClipboard.setPixmap(QPixmap('./images/abc.jpg'))
    def pasteImage(self):
        QClipboard = QApplication.clipboard()
        self.imageLabel.setPixmap(QClipboard.pixmap())

    def copyHtml(self):
        mimeData = QMimeData()
        mimeData.setHtml('<b>Bold and <font color=red>Red</font></b>')
        QClipboard = QApplication.clipboard()
        QClipboard.setMimeData(mimeData)

    def pasteHtml(self):
        QClipboard = QApplication.clipboard()
        mimeData  = QClipboard.mimeData()
        if QMimeData.hasHtml():
            self.textLabel.setText(mimeData.html())
if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = ClipBoard()
    main.show()
    sys.exit(app.exec_())

代码运行效果图如下:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43008143/article/details/107825533