Pyqt5 简明教程
PyQt5 - QClipboard
QClipboard 类提供对系统剪贴板的访问,它提供了一个在应用程序之间复制和粘贴数据的简单机制。它的操作与 QDrag 类相似并使用类似的数据类型。
QApplication 类具有静态方法 clipboard() ,它返回对剪贴板对象的引用。任何类型的 MimeData 都可以复制到或从剪贴板粘贴。
以下是一些常用的剪贴板类的方法: -
Sr.No. |
Methods & Description |
1 |
clear() Clears clipboard contents |
2 |
setImage() Copies QImage into clipboard |
3 |
setMimeData() 将 MIME 数据设置到剪贴板 |
4 |
setPixmap() 在剪贴板中复制 Pixmap 对象 |
5 |
setText() Copies QString in clipboard |
6 |
text() Retrieves text from clipboard |
与剪贴板对象关联的信号是 -
Sr.No. |
Method & Description |
1 |
dataChanged() Whenever clipboard data changes |
Example
在以下示例中,两个 TextEdit 对象和两个 Pushbutton 被添加到一个顶级窗口。
首先,实例化剪贴板对象。textedit 对象的 Copy() 方法将数据复制到系统剪贴板。当按下粘贴按钮时,它会获取剪贴板数据并将其粘贴到另一个 textedit 对象。
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_())
上述代码生成以下输出 -