python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
PyQt5访问系统剪切板QClipboard类介绍
QClipboard类提供了对系统剪切板的访问,可以在应用程序之间复制和粘贴数据,它的操作类似于QDrag类,,并使用类似的数据结构
QApplication类有一个静态方法clipboard(),它的返回值对剪切板对象的引用,任何类型的MimeData都可以从剪切板复制或粘贴
QClipboard类中的常用方法如表
QClipboard类中的常用信号
QClipboard访问系统剪切版的使用实例
importos importsys fromPyQt5.QtCoreimportQMimeData fromPyQt5.QtWidgetsimport(QApplication,QDialog,QGridLayout,QLabel,QPushButton) fromPyQt5.QtGuiimportQPixmap classForm(QDialog): def__init__(self,parent=None): super(Form,self).__init__(parent) #创建复制粘贴按钮,并添加快捷键 textCopyButton=QPushButton("&CopyText") textPasteButton=QPushButton("Paste&Text") htmlCopyButton=QPushButton("C&opyHTML") htmlPasteButton=QPushButton("Paste&HTML") imageCopyButton=QPushButton("Co&pyImage") imagePasteButton=QPushButton("Paste&Image") #创建文本标签和图像标签,显示文本和图像 self.textLabel=QLabel("Originaltext") self.imageLabel=QLabel() self.imageLabel.setPixmap(QPixmap(os.path.join( os.path.dirname(__file__),"E:\pyqt5快速开发与实战\第四章\images\python.png"))) #设置栅格布局,并添加部件到相应的位置 layout=QGridLayout() layout.addWidget(textCopyButton,0,0) layout.addWidget(imageCopyButton,0,1) layout.addWidget(htmlCopyButton,0,2) layout.addWidget(textPasteButton,1,0) layout.addWidget(imagePasteButton,1,1) layout.addWidget(htmlPasteButton,1,2) layout.addWidget(self.textLabel,2,0,1,2) layout.addWidget(self.imageLabel,2,2) #设置主窗口的布局,自定义槽函数,设置标题 self.setLayout(layout) textCopyButton.clicked.connect(self.copyText) textPasteButton.clicked.connect(self.pasteText) htmlCopyButton.clicked.connect(self.copyHtml) htmlPasteButton.clicked.connect(self.pasteHtml) imageCopyButton.clicked.connect(self.copyImage) imagePasteButton.clicked.connect(self.pasteImage) self.setWindowTitle("Clipboard例子") defcopyText(self): #实例化剪切板,设置剪切板的文本 clipboard=QApplication.clipboard() clipboard.setText("I'vebeenclipped!") defpasteText(self): #实例化剪切板,标签设置为剪切板的文本并显示 clipboard=QApplication.clipboard() self.textLabel.setText(clipboard.text()) defcopyImage(self): #实例化剪切板,设置剪切板加载的图想路径 clipboard=QApplication.clipboard() clipboard.setPixmap(QPixmap(os.path.join( os.path.dirname(__file__),"./images/python.png"))) defpasteImage(self): #实例化剪切板,z设置图像标签的图片加载,从剪切板获取路径 clipboard=QApplication.clipboard() self.imageLabel.setPixmap(clipboard.pixmap()) defcopyHtml(self): #实例化MimeData数据类型,设置类型Html的文本 mimeData=QMimeData() mimeData.setHtml("BoldandRed ") #实例化剪切板,设置MimeData的初值文本 clipboard=QApplication.clipboard() clipboard.setMimeData(mimeData) defpasteHtml(self): #实例化剪切板,,获取MimeData的数据,并设置为标签的文本值 clipboard=QApplication.clipboard() mimeData=clipboard.mimeData() ifmimeData.hasHtml(): self.textLabel.setText(mimeData.html()) if__name__=="__main__": app=QApplication(sys.argv) form=Form() form.show() sys.exit(app.exec_())
效果图如下
QClipboard代码分析
在这个例子中,有六个按钮和2个标签,需要实例化Clipboard对象,
可以将文本复制到Clipboard对象中
#实例化剪切板,标签设置为剪切板的文本并显示 clipboard=QApplication.clipboard() self.textLabel.setText(clipboard.text())
也可以将图片复制到剪切板对象中
clipboard=QApplication.clipboard() self.imageLabel.setPixmap(clipboard.pixmap())
本文主要讲解了pythonPyQt5访问系统剪切板QClipboard类详细使用方法与实例,更多相关知识请查看下面的相关链接
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。