PyQt5 - QClipboard

  • 简述

    QClipboard类提供对系统范围剪贴板的访问,该剪贴板提供了一种在应用程序之间复制和粘贴数据的简单机制。它的作用类似于QDrag类并使用类似的数据类型。
    QApplication 类有一个静态方法clipboard()它返回对剪贴板对象的引用。任何类型的 MimeData 都可以复制到剪贴板或从剪贴板粘贴。
    以下是常用的剪贴板类方法 -
    序号 方法和描述
    1
    clear()
    清除剪贴板内容
    2
    setImage()
    将 QImage 复制到剪贴板
    3
    setMimeData()
    将 MIME 数据设置到剪贴板
    4
    setPixmap()
    复制剪贴板中的像素图对象
    5
    setText()
    在剪贴板中复制 QString
    6
    text()
    从剪贴板中检索文本
    与剪贴板对象关联的信号是 -
    序号 方法和说明
    1
    dataChanged()
    每当剪贴板数据发生变化
  • 例子

    在以下示例中,将两个 TextEdit 对象和两个 Pushbuttons 添加到顶级窗口。
    首先实例化剪贴板对象。textedit 对象的 Copy() 方法将数据复制到系统剪贴板上。单击“粘贴”按钮时,它会获取剪贴板数据并将其粘贴到其他文本编辑对象中。
    
    
    import sys
    
    from PyQt5.QtCore import *
    
    from PyQt5.QtGui import *
    
    from PyQt5.QtWidgets import *
    
    
    
    class Example(QWidget):
    
       def __init__(self):
    
          super(Example, self).__init__()
    
    
    
          self.initUI()
    
    
    
       def initUI(self):
    
          hbox = QVBoxLayout()
    
          self.edit1=QTextEdit()
    
          hbox.addWidget(self.edit1)
    
          self.btn1=QPushButton("Copy")
    
          hbox.addWidget(self.btn1)
    
          self.edit2=QTextEdit()
    
          self.btn2=QPushButton("Paste")
    
          hbox.addWidget(self.edit2)
    
          hbox.addWidget(self.btn2)
    
          self.btn1.clicked.connect(self.copytext)
    
          self.btn2.clicked.connect(self.pastetext)
    
          self.setLayout(hbox)
    
          
    
          self.setGeometry(300, 300, 300, 200)
    
          self.setWindowTitle('Clipboard')
    
          self.show()
    
          
    
       def copytext(self):
    
    
    
          #clipboard.setText(self.edit1.copy())
    
          self.edit1.copy()
    
          print (clipboard.text())
    
    
    
          msg=QMessageBox()
    
          msg.setText(clipboard.text()+" copied on clipboard")
    
          msg.exec_()
    
    
    
       def pastetext(self):
    
          self.edit2.setText(clipboard.text())
    
    
    
    app = QApplication(sys.argv)
    
    clipboard=app.clipboard()
    
    ex = Example()
    
    ex.setWindowTitle("clipboard Example")
    
    sys.exit(app.exec_())
    
    
    上面的代码产生以下输出 -
    QC剪贴板