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下的多进程编程
Apr 28 Python
在Python中使用AOP实现Redis缓存示例
Jul 11 Python
Python初学时购物车程序练习实例(推荐)
Aug 08 Python
Python实现自动发送邮件功能
Mar 02 Python
python实现列表中由数值查到索引的方法
Jun 27 Python
python批量下载抖音视频
Jun 17 Python
Python一键安装全部依赖包的方法
Aug 12 Python
python中怎么表示空值
Jun 19 Python
python 安装移动复制第三方库操作
Jul 13 Python
Python并发爬虫常用实现方法解析
Nov 19 Python
python工具快速为音视频自动生成字幕(使用说明)
Jan 27 Python
python之基数排序的实现
Jul 26 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
关于JSON以及JSON在PHP中的应用技巧
2013/11/27 PHP
thinkphp实现like模糊查询实例
2014/10/29 PHP
使用新浪微博API的OAuth认证发布微博实例
2015/03/27 PHP
PHP+AJAX实现投票功能的方法
2015/09/28 PHP
Laravel学习基础之migrate的使用教程
2017/10/11 PHP
js 延迟加载 改变JS的位置加快网页加载速度
2012/12/11 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
2014/05/08 Javascript
js仿苹果iwatch外观的计时器代码分享
2015/08/26 Javascript
详解JavaScript的变量和数据类型
2015/11/27 Javascript
通过设置CSS中的position属性来固定层的位置
2015/12/14 Javascript
JavaScript异步上传图片文件的实例代码
2017/07/04 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
JS监控关闭浏览器操作的实例详解
2017/09/12 Javascript
详解NODEJS基于FFMPEG视频推流测试
2017/11/17 NodeJs
vue中使用refs定位dom出现undefined的解决方法
2017/12/21 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
使用python解析xml成对应的html示例分享
2014/04/02 Python
python在linux系统下获取系统内存使用情况的方法
2015/05/11 Python
Python随机生成身份证号码及校验功能
2018/12/04 Python
python读取xlsx的方法
2018/12/25 Python
详解Python传入参数的几种方法
2019/05/16 Python
Python3.7 读取 mp3 音频文件生成波形图效果
2019/11/05 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
2020/02/04 Python
Python paramiko 模块浅谈与SSH主要功能模拟解析
2020/02/29 Python
python中wx模块的具体使用方法
2020/05/15 Python
Python之京东商品秒杀的实现示例
2021/01/06 Python
CSS3中Animation动画属性用法详解
2016/07/04 HTML / CSS
波兰化妆品和护肤品购物网站:eKobieca
2019/08/30 全球购物
低碳日宣传活动总结
2014/07/09 职场文书
2014年九一八事变演讲稿
2014/09/14 职场文书
公路局群众路线教育实践活动第一阶段工作汇报
2014/10/25 职场文书
2014年行政后勤工作总结
2014/12/06 职场文书
芙蓉镇观后感
2015/06/10 职场文书
中国式结婚:司仪主持词(范文)
2019/07/25 职场文书
python自动化测试通过日志3分钟定位bug
2021/11/20 Python
解决Git推送错误non-fast-forward的方法
2022/06/25 Servers