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_())
上面的代码产生以下输出 −