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_())

上面的代码产生以下输出 −

QClipboard