import sys
from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit, QTextBrowser, QPushButton, QGridLayout class Demo(QWidget):
def __init__(self):
super(Demo, self).__init__()
self.text_edit = QTextEdit(self)
self.text_browser = QTextBrowser(self) self.clipboard = QApplication.clipboard() # 实例化剪贴板
self.clipboard.dataChanged.connect(lambda: print('数据变化了'))#当数据发生变化时发出信号 self.copy_btn = QPushButton('复制', self)
self.copy_btn.clicked.connect(self.copy_func) self.paste_btn = QPushButton('粘贴', self)
self.paste_btn.clicked.connect(self.paste_func) self.g_layout = QGridLayout()
self.g_layout.addWidget(self.text_edit, 0, 0, 1, 1)
self.g_layout.addWidget(self.text_browser, 0, 1, 1, 1)
self.g_layout.addWidget(self.copy_btn, 1, 0, 1, 1)
self.g_layout.addWidget(self.paste_btn, 1, 1, 1, 1)
self.setLayout(self.g_layout) def copy_func(self):
self.clipboard.setText(self.text_edit.toPlainText())#给剪贴板设置文本(纯文本) def paste_func(self):
#方法一
self.text_browser.setText(self.clipboard.text())
#self.clipboard.text() 返回剪贴板的文本
#方法二
mime = self.clipboard.mimeData() #返回剪贴板的mime数据。是对象
if mime.hasText():
self.text_browser.setText(mime.text())
# mime.text() 获取mime对象中的文本 if __name__ == '__main__':
app = QApplication(sys.argv)
demo = Demo()
demo.show()
sys.exit(app.exec_())

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

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

self.mime_data.setHtml(self.text_edit.textCursor().selection().toHtml())   给MIME对象设置文本--带颜色格式的文本

self.clipboard.setMimeData(self.mime_data)      给剪贴板设置MIME数据

最新文章

  1. mac svn命令使用
  2. Navicat premium工具常用快捷键
  3. mysql 查询每个班级成绩前两名
  4. 中介者模式(Mediator)
  5. 选择最适合你的Linux学习方法
  6. Html类ImageGetter接口
  7. HDU4628+状态压缩DP
  8. JS中各种宽度、高度、位置、距离总结
  9. DOM操作-根据name获取网页中的全部复选框
  10. python特征提取——pyAudioAnalysis工具包
  11. 你不知道的JSON.stringify和JSON.parse
  12. 【python进阶】详解元类及其应用2
  13. ExtJS学习(二)Ext组件模型
  14. Hibernate内容详解
  15. Keras的一些功能函数
  16. RabbitMQ的应用场景以及基本原理简介
  17. mariadb(第一章)
  18. k8s定义Deployment,和service
  19. 矩阵乘法在numpy/matlab/数学上的不同
  20. Linux操作系统,服务器端的主流

热门文章

  1. Word2007—如何快速取消自动编号
  2. java:(json,ajax,path,Oracle的分页实例,Filter拦截器)
  3. [转载]jsp上传文件
  4. Unity3D中的SendMessage使用(消息传递的三种方法)
  5. 简述前后端分离的情况下,Vue实现点击图片下载到本地(并实现IE11浏览器的兼容)
  6. WM_RBUTTONUP消息收不到问题
  7. python 传址 与传值(暂时保存,后续做分类)
  8. Linux mv命令(7)
  9. a++和++a的区别
  10. javaweb:关于HttpServletRequest介绍 (转)