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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。