实战PyQt5: 101-使用剪贴板
文章插图
应用之间交换数据除了可以使用拖放技术外 , 还可使用剪贴板 。 一个应用把数据放到剪贴板 , 另一个应用从剪贴板中提出数据 。
QClipboard简介【实战PyQt5: 101-使用剪贴板】QClipboard类提供了对系统剪切板的访问 , 可以在应用程序之间复制和粘贴数据 , 它的操作类似于QDrag类 , 并使用类似的数据结构 。
获取对全局剪贴板对象的引用 , 可使用QAppiication类的静态方法: clipboard = QAppiication.clipboard()
任何类型的MimeData都可以从剪切板复制或粘贴 。
QClipboard类的常用方法:
- setText( text :str):将文本放置到剪贴板 。
- text():返回剪贴板中的文本或空字符串 。
- text (type):返回一个包括两个成员的元组 。 第一个成员为剪贴板中的文本;第二个为文本的类型 。 参数可以为 "plain", "html" (HTML), 空字符串(任意类型) 。
- setImage ( img :QImage): 将QImage类图像放置到剪贴板 。 如:
clipboard.setImage (QtGui.QImage ("image.jpg"))
- image (): 返回一个QImage对象
- setPixmap(img : QPixmap): 将QPixmap类图像放置到剪贴板 。 如:
clipboard.setPixmap (QtGui.QPixmap ("image, jpg"))
- pixmap(): 返回一个QImage对象 。
- setMimeData(data :QMimeData): 将MimeData类型数据放置到剪贴板 。 QMimeData 类可以存放任意类型的数据 。
- mimeData() : 返回一个QMimeData对象 。
- clear(): 清空剪贴板数据 。
- dataChanged(): 当剪切板内容发生变化时 , 发射这个信号 。
import sys,osfrom PyQt5 import QtCore, QtGui, QtWidgetsfrom PyQt5.QtCore import Qt, QMimeDatafrom PyQt5.QtGui import QPixmapfrom PyQt5.QtWidgets import (QApplication, QMainWindow, QFrame, QLabel,QMenuBar, QMenu, QAction) class DemoClipboard(QMainWindow):def __init__(self, parent=None):super(DemoClipboard, self).__init__(parent)# 设置窗口标题self.setWindowTitle('实战PyQt5: QClipBoard 剪贴板演示')# 设置窗口大小self.resize(400, 300)self.initUi()self.clipType=''def initUi(self):self.initMenu()self.showBox = QLabel()self.showBox.setFrameShape(QFrame.Box)self.showBox.setLineWidth(1)self.showBox.setAlignment(Qt.AlignCenter)self.setCentralWidget(self.showBox)def initMenu(self):mBar = self.menuBar()#文件菜单menuFile = mBar.addMenu('文件')#退出aExit = QAction('退出', self)aExit.triggered.connect(self.close)menuFile.addAction(aExit)#编辑菜单menuEdit = mBar.addMenu('编辑')aCopyText = QAction('复制文本', self)aCopyText.triggered.connect(self.onCopyText)aCopyHtml = QAction('复制Html文本', self)aCopyHtml.triggered.connect(self.onCopyHtml)aCopyImage = QAction('复制图像',self)aCopyImage.triggered.connect(self.onCopyImage)aPaste = QAction('粘贴', self)aPaste.triggered.connect(self.onPaste)menuEdit.addAction(aCopyText)menuEdit.addAction(aCopyHtml)menuEdit.addAction(aCopyImage)menuEdit.addSeparator()menuEdit.addAction(aPaste)def onCopyText(self):#设置剪贴板文本clipboard = QApplication.clipboard()clipboard.setText('这是一段剪贴板文本')def onCopyHtml(self):mimeData = http://kandian.youth.cn/index/QMimeData()mimeData.setHtml("Bold and
- 20款游戏实战!酷睿i7-10750H、锐龙9 4900H到底谁更强?
- 项目实战 | 记一次对某猥琐PHP后门的爆菊
- Redis集群做法的难点,百万并发客户端「实战」
- GTC DLI 实战培训第一课:理论与实践入门
- Python爬虫实战案例:采集爱奇艺VIP视频
- 补天白帽城市沙龙走进成都 实战化攻防推动安全产业发展
- 阿里爆款SpringBoot项目实战PDF+源码+视频分享
- 想上高频内存,主板怎么选?大雕Z490实战8套内存秀给你看
- Python数据分析:数据可视化实战教程
- 腾讯游戏大数据资产管理实战:元数据管理与数据治理