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在linux中输出带颜色的文字的方法
Jun 19 Python
python通过定义一个类实例作为ftp回调方法
May 04 Python
Python实现PS滤镜特效之扇形变换效果示例
Jan 26 Python
Python3 实现随机生成一组不重复数并按行写入文件
Apr 09 Python
python 对dataframe下面的值进行大规模赋值方法
Jun 09 Python
python 3.6.5 安装配置方法图文教程
Sep 18 Python
[原创]Python入门教程4. 元组基本操作
Oct 31 Python
python实现本地批量ping多个IP的方法示例
Aug 07 Python
tensorflow模型保存、加载之变量重命名实例
Jan 21 Python
快速解决jupyter启动卡死的问题
Apr 10 Python
用于ETL的Python数据转换工具详解
Jul 21 Python
python实现发送QQ邮件(可加附件)
Dec 23 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
用Socket发送电子邮件(利用需要验证的SMTP服务器)
2006/10/09 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
2014/11/07 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
2016/03/04 PHP
php使用array_chunk函数将一个数组分割成多个数组
2018/12/05 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
2019/02/15 PHP
javascript 字符 Escape,encodeURI,encodeURIComponent
2009/07/09 Javascript
不同浏览器的怪癖小结
2010/07/11 Javascript
js与css实现弹出层覆盖整个页面的方法
2014/12/13 Javascript
jQuery+json实现动态创建复杂表格table的方法
2016/10/25 Javascript
基于javascript实现按圆形排列DIV元素(一)
2016/12/02 Javascript
javascript基本数据类型及类型检测常用方法小结
2016/12/14 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
2017/02/07 Javascript
从零开始学习Node.js系列教程三:图片上传和显示方法示例
2017/04/13 Javascript
ionic 自定义弹框效果
2017/06/27 Javascript
Vue插件从封装到发布的完整步骤记录
2019/02/28 Javascript
详解Vue源码学习之双向绑定
2019/04/10 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
2019/12/09 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
python爬虫框架talonspider简单介绍
2017/06/09 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
Python类装饰器实现方法详解
2018/12/21 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
2019/04/10 Python
django-filter和普通查询的例子
2019/08/12 Python
解决tensorflow由于未初始化变量而导致的错误问题
2020/01/06 Python
使用Python爬虫库requests发送表单数据和JSON数据
2020/01/25 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
2020/06/11 Python
C#可否对内存进行直接的操作
2015/02/26 面试题
Linux的主要特性
2014/10/06 面试题
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
国培教师自我鉴定
2014/02/12 职场文书
校园学雷锋活动月总结
2014/03/09 职场文书
房屋转让协议书
2014/10/18 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
2015年度销售个人工作总结
2015/03/31 职场文书
Mysql开启外网访问
2022/05/15 MySQL