PyQt5 – QClipboard
QClipboard类提供了对系统范围内剪贴板的访问,它提供了一个简单的机制来在应用程序之间复制和粘贴数据。它的动作类似于QDrag类,并使用类似的数据类型。
QApplication类有一个静态方法clipboard(),返回对剪贴板对象的引用。任何类型的MimeData都可以被复制到剪贴板或从剪贴板中粘贴。
以下是常用的剪贴板类方法—。
Sr.No. | 方法和描述 |
---|---|
1 | clear() 清除剪贴板内容 |
2 | setImage() 复制QImage到剪贴板上 |
3 | setMimeData() 设置MIME数据到剪贴板中 |
4 | setPixmap() 复制剪贴板中的Pixmap对象 |
5 | setText() 复制剪贴板中的QString |
6 | text() 检索剪贴板上的文本 |
与剪贴板对象相关的信号是-
Sr.No. | 方法和描述 |
---|---|
1 | dataChanged() 每当剪贴板数据改变时 |
示例
在下面的例子中,两个TextEdit对象和两个Pushbuttons被添加到一个顶层窗口。
首先,剪贴板对象被实例化了。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_())
上述代码产生了以下输出 —