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


Posted in Python onFebruary 27, 2020

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_())

效果图如下

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

QClipboard代码分析

在这个例子中,有六个按钮和2个标签,需要实例化Clipboard对象,

可以将文本复制到Clipboard对象中

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

也可以将图片复制到剪切板对象中

clipboard = QApplication.clipboard()
self.imageLabel.setPixmap(clipboard.pixmap())

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

Python 相关文章推荐
用Python从零实现贝叶斯分类器的机器学习的教程
Mar 31 Python
Python编码爬坑指南(必看)
Jun 10 Python
Python的语言类型(详解)
Jun 24 Python
python中利用队列asyncio.Queue进行通讯详解
Sep 10 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
Oct 29 Python
Python字符串对象实现原理详解
Jul 01 Python
Python搭建Spark分布式集群环境
Jul 05 Python
linux环境中没有网络怎么下载python
Jul 07 Python
python使用协程实现并发操作的方法详解
Dec 27 Python
python 读取二进制 显示图片案例
Apr 24 Python
python 实现简单的计算器(gui界面)
Nov 11 Python
Anaconda安装pytorch及配置PyCharm 2021环境
Jun 04 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
Feb 27 #Python
python脚本实现mp4中的音频提取并保存在原目录
Feb 27 #Python
python列表切片和嵌套列表取值操作详解
Feb 27 #Python
Python递归实现打印多重列表代码
Feb 27 #Python
Python各种扩展名区别点整理
Feb 27 #Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
Feb 27 #Python
python程序文件扩展名知识点详解
Feb 27 #Python
You might like
adodb与adodb_lite之比较
2006/12/31 PHP
用PHP代码在网页上生成图片
2015/07/01 PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
2015/11/25 PHP
PHP利用imagick生成组合缩略图
2016/02/19 PHP
Yii框架弹出框功能示例
2017/01/07 PHP
如何做到打开一个页面,过几分钟自动转到另一页面
2007/04/20 Javascript
javascript 写类方式之一
2009/07/05 Javascript
5款Javascript颜色选择器
2009/10/25 Javascript
EditPlus注册码生成器(js代码实现)
2013/03/25 Javascript
网页中表单按回车就自动提交的问题的解决方案
2014/11/03 Javascript
js实现仿微博滚动显示信息的效果
2015/12/21 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
2016/01/12 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
2016/08/25 Javascript
vue实现可增删查改的成绩单
2016/10/27 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
2017/05/27 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
详解webpack3如何正确引用并使用jQuery库
2017/08/26 jQuery
微信开发之微信jssdk录音功能开发示例
2018/10/22 Javascript
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
小程序自定义导航栏兼容适配所有机型(附完整案例)
2020/04/26 Javascript
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
在Python中进行自动化单元测试的教程
2015/04/15 Python
使用Python生成随机密码的示例分享
2016/02/18 Python
利用pyinstaller或virtualenv将python程序打包详解
2017/03/22 Python
Python 比较两个数组的元素的异同方法
2017/08/17 Python
解决Django的request.POST获取不到内容的问题
2018/05/28 Python
Python除法之传统除法、Floor除法及真除法实例详解
2019/05/23 Python
jupyter notebook 多行输出实例
2020/04/09 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
python中rc1什么意思
2020/06/19 Python
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
中文专业毕业生自荐书范文
2014/01/04 职场文书
期末自我鉴定
2014/02/02 职场文书
学生意外伤害赔偿协议书
2014/09/17 职场文书
2016年优秀团支部事迹材料
2016/02/26 职场文书