python---剪贴板

 

复制代码
 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()                 将文本放到剪贴板中

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

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

 

posted @   天子骄龙  阅读(553)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示