python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例

 更新时间:2020年02月27日 16:25:25   作者:jia666666  
这篇文章主要介绍了python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例,需要的朋友可以参考下

PyQt5访问系统剪切板QClipboard类介绍

QClipboard类提供了对系统剪切板的访问,可以在应用程序之间复制和粘贴数据,它的操作类似于QDrag类,,并使用类似的数据结构

QApplication类有一个静态方法clipboard(),它的返回值对剪切板对象的引用,任何类型的MimeData都可以从剪切板复制或粘贴

QClipboard类中的常用方法如表

方法 描述
clear() 清空剪切板的内容
setImage() 将QImage对象复制到剪切板中
setMimeData() 将MIME数据设置为剪切板
setPixmap() 从剪切板中复制Pixmap对象
setText() 从剪切板中复制文本
text() 从剪切板中检索文本

QClipboard类中的常用信号

信号 含义
dataChanged 当剪切板内容发生变化时,这个信号被发射

QClipboard访问系统剪切版的使用实例

import os
import sys
from PyQt5.QtCore import QMimeData
from PyQt5.QtWidgets import (QApplication, QDialog, QGridLayout, QLabel, QPushButton)
from PyQt5.QtGui import QPixmap


class Form(QDialog):
  def __init__(self, parent=None):
    super(Form, self).__init__(parent)

    #创建复制粘贴按钮,并添加快捷键
    textCopyButton = QPushButton("&Copy Text")
    textPasteButton = QPushButton("Paste &Text")
    htmlCopyButton = QPushButton("C&opy HTML")
    htmlPasteButton = QPushButton("Paste &HTML")
    imageCopyButton = QPushButton("Co&py Image")
    imagePasteButton = QPushButton("Paste &Image")

    #创建文本标签和图像标签,显示文本和图像
    self.textLabel = QLabel("Original text")
    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 例子")

  def copyText(self):
    #实例化剪切板,设置剪切板的文本
    clipboard = QApplication.clipboard()
    clipboard.setText("I've been clipped!")

  def pasteText(self):
    #实例化剪切板,标签设置为剪切板的文本并显示
    clipboard = QApplication.clipboard()
    self.textLabel.setText(clipboard.text())

  def copyImage(self):
    #实例化剪切板,设置剪切板加载的图想路径
    clipboard = QApplication.clipboard()
    clipboard.setPixmap(QPixmap(os.path.join(
      os.path.dirname(__file__), "./images/python.png")))

  def pasteImage(self):
    #实例化剪切板,z设置图像标签的图片加载,从剪切板获取路径
    clipboard = QApplication.clipboard()
    self.imageLabel.setPixmap(clipboard.pixmap())

  def copyHtml(self):
    #实例化MimeData数据类型,设置类型Html的文本
    mimeData = QMimeData()
    mimeData.setHtml("<b>Bold and <font color=red>Red</font></b>")
    #实例化剪切板,设置MimeData的初值文本
    clipboard = QApplication.clipboard()
    clipboard.setMimeData(mimeData)

  def pasteHtml(self):
    #实例化剪切板,,获取MimeData的数据,并设置为标签的文本值
    clipboard = QApplication.clipboard()
    mimeData = clipboard.mimeData()
    if mimeData.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())

本文主要讲解了python PyQt5访问系统剪切板QClipboard类详细使用方法与实例,更多相关知识请查看下面的相关链接

相关文章

  • pybind11在Windows下的使用教程

    pybind11在Windows下的使用教程

    Pybind11算是目前最方便的Python调用C++的工具了, 介绍一下在vs2019上写Python的扩展的HelloWorld,感兴趣的朋友跟随小编一起看看吧
    2019-07-07
  • python异步编程 使用yield from过程解析

    python异步编程 使用yield from过程解析

    这篇文章主要介绍了python异步编程 使用yield from过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • python中and和or逻辑运算符的用法示例

    python中and和or逻辑运算符的用法示例

    python中的逻辑运算符有两种返回值,python运算符除了能操作bool类型表达式,还能操作其他所有类型的表达式,这篇文章主要给大家介绍了关于python中and和or逻辑运算符用法的相关资料,需要的朋友可以参考下
    2022-01-01
  • Pycharm快速安装OpenCV的详细操作步骤

    Pycharm快速安装OpenCV的详细操作步骤

    Pycharm中使用OpenCV,其实也就是用Python语言调用OpenCV,下面这篇文章主要给大家介绍了关于Pycharm快速安装OpenCV的详细操作步骤,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • python和c语言的主要区别总结

    python和c语言的主要区别总结

    在本篇文章里小编给各位整理了关于python和c语言的主要区别的相关知识帖内容,有需要的朋友们学习阅读下。
    2019-07-07
  • 零基础写python爬虫之抓取糗事百科代码分享

    零基础写python爬虫之抓取糗事百科代码分享

    前面我们介绍了如何抓取百度贴吧文章,然后讲解了python的神器正则表达式,下面,我们就把2者结合起来,详细介绍下,如何来抓取到糗事百科里面的指定内容
    2014-11-11
  • 浅谈Pycharm调用同级目录下的py脚本bug

    浅谈Pycharm调用同级目录下的py脚本bug

    今天小编就为大家分享一篇浅谈Pycharm调用同级目录下的py脚本bug,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python 把两层列表展开平铺成一层(5种实现方式)

    Python 把两层列表展开平铺成一层(5种实现方式)

    这篇文章主要介绍了Python 把两层列表展开平铺成一层(5种实现方式),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • python+mongodb数据抓取详细介绍

    python+mongodb数据抓取详细介绍

    这篇文章主要介绍了python+mongodb数据抓取详细介绍,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • 详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件

    详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件

    这篇文章主要介绍了详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08

最新评论