python3+PyQt5实现使用剪贴板做复制与粘帖示例


Posted in Python onJanuary 24, 2017

本文是对《Python Qt GUI快速编程》的第10章的例子剪贴板用Python3+PyQt5进行改写,分别对文本,图片和html文本的复制与粘帖,三种做法大同小异。

#!/usr/bin/env python3
import os
import sys
from PyQt5.QtCore import (QMimeData, Qt)
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__), "images/clock.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/gvim.png")))

  def pasteImage(self):
    clipboard = QApplication.clipboard()
    self.imageLabel.setPixmap(clipboard.pixmap())


  def copyHtml(self):
    mimeData = QMimeData()
    mimeData.setHtml("<b>Bold and <font color=red>Red</font></b>")
    clipboard = QApplication.clipboard()
    clipboard.setMimeData(mimeData)


  def pasteHtml(self):
    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()
  app.exec_()

运行结果:

python3+PyQt5实现使用剪贴板做复制与粘帖示例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python的id()函数介绍
Feb 10 Python
Python进程通信之匿名管道实例讲解
Apr 11 Python
Python实现豆瓣图片下载的方法
May 25 Python
python使用Pycharm创建一个Django项目
Mar 05 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
Jul 20 Python
matplotlib savefig 保存图片大小的实例
May 24 Python
Django中的Model操作表的实现
Jul 24 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
Feb 21 Python
python查找重复图片并删除(图片去重)
Jul 16 Python
numpy 声明空数组详解
Dec 05 Python
python连接mongodb集群方法详解
Feb 13 Python
python 实现德洛内三角剖分的操作
Apr 22 Python
Python调用C++程序的方法详解
Jan 24 #Python
python中import学习备忘笔记
Jan 24 #Python
用python实现简单EXCEL数据统计的实例
Jan 24 #Python
Python如何import文件夹下的文件(实现方法)
Jan 24 #Python
利用Python脚本实现ping百度和google的方法
Jan 24 #Python
解决python2.7用pip安装包时出现错误的问题
Jan 23 #Python
浅谈终端直接执行py文件,不需要python命令
Jan 23 #Python
You might like
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
Ajax 数据请求的简单分析
2011/04/05 Javascript
当jQuery遭遇CoffeeScript的时候 使用分享
2011/09/17 Javascript
推荐40款强大的 jQuery 导航插件和教程(上篇)
2012/09/14 Javascript
js+数组实现网页上显示时间/星期几的实用方法
2013/01/18 Javascript
关于js注册事件的常用方法
2013/04/03 Javascript
jQuery JSON实现无刷新三级联动实例探讨
2013/05/28 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
解析JavaScript中的不可见数据类型
2013/12/02 Javascript
利用window.name实现windowStorage代码分享
2014/01/02 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
2014/03/27 Javascript
详解Angular2 之 结构型指令
2017/06/21 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
js+html5实现页面可刷新的倒计时效果
2017/07/15 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
2017/12/05 Javascript
基于vue-ssr服务端渲染入门详解
2018/01/08 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
vue-router的使用方法及含参数的配置方法
2018/11/13 Javascript
JavaScript中的类型检查
2020/02/03 Javascript
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
python实现自动登录后台管理系统
2018/10/18 Python
python实现单目标、多目标、多尺度、自定义特征的KCF跟踪算法(实例代码)
2020/01/08 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
keras训练浅层卷积网络并保存和加载模型实例
2020/07/02 Python
学习Python爬虫的几点建议
2020/08/05 Python
Jupyter Notebook添加代码自动补全功能的实现
2021/01/07 Python
Python中全局变量和局部变量的理解与区别
2021/02/07 Python
HTML5中的Scoped属性使用实例
2014/04/23 HTML / CSS
WiFi云数码相框:Nixplay
2018/07/05 全球购物
预订旅游活动、景点和旅游:GetYourGuide
2019/09/29 全球购物
传统软件工程与面向对象的软件工程有什么区别
2012/05/31 面试题
小学二年级学生评语
2014/04/21 职场文书
财务工作失职检讨书
2014/11/21 职场文书
单位更名证明
2015/06/18 职场文书
Win10鼠标轨迹怎么开 Win10显示鼠标轨迹方法
2022/04/06 数码科技