剪贴板

 

 1 import sys
 2 from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit, QTextBrowser, QPushButton, QGridLayout
 3 
 4 class Demo(QWidget):
 5     def __init__(self):
 6         super(Demo, self).__init__()
 7         self.text_edit = QTextEdit(self)
 8         self.text_browser = QTextBrowser(self)
 9 
10         self.clipboard = QApplication.clipboard()  # 实例化剪贴板
11         self.clipboard.dataChanged.connect(lambda: print('数据变化了'))#当数据发生变化时发出信号
12 
13         self.copy_btn = QPushButton('复制', self)
14         self.copy_btn.clicked.connect(self.copy_func)
15 
16         self.paste_btn = QPushButton('粘贴', self)
17         self.paste_btn.clicked.connect(self.paste_func)
18 
19         self.g_layout = QGridLayout()
20         self.g_layout.addWidget(self.text_edit, 0, 0, 1, 1)
21         self.g_layout.addWidget(self.text_browser, 0, 1, 1, 1)
22         self.g_layout.addWidget(self.copy_btn, 1, 0, 1, 1)
23         self.g_layout.addWidget(self.paste_btn, 1, 1, 1, 1)
24         self.setLayout(self.g_layout)
25 
26     def copy_func(self):
27         self.clipboard.setText(self.text_edit.toPlainText())#给剪贴板设置文本
28 
29     def paste_func(self):
30         #方法一
31         self.text_browser.setText(self.clipboard.text())
32         #self.clipboard.text()  返回剪贴板的文本
33         #方法二
34         mime = self.clipboard.mimeData()  #返回剪贴板的mime数据。是对象
35         if mime.hasText():
36             self.text_browser.setText(mime.text())
37             # mime.text() 获取mime对象中的文本
38 
39 if __name__ == '__main__':
40     app = QApplication(sys.argv)
41     demo = Demo()
42     demo.show()
43     sys.exit(app.exec_())

 

当然以上只是针对文本内容,当然还可以复制图片等文件,而剪贴板当然也有相应的方法,以下列出常用的:

方法                          解释
clear()                      清空剪贴板内容
mimeData()             获取剪贴板上的MIME类型数据
setMimeData()        将MIME类型数据放到剪贴板中
pixmap()                  获取剪贴板上的QPixmap类型数据
setPixmap()            将QPixmap类型数据放到剪贴板中
image()                   获取剪贴板上的QImage类型数据
setImage()              将QImage类型数据放到剪贴板中
text()                       获取剪贴板上的文本
setText()                 将文本放到剪贴板中

 

上一篇:vue在移动端实现复制数值到剪贴版


下一篇:clipboard.js实现复制功能